# Install Conda and set up the environment
!pip install -q condacolab
import condacolab
condacolab.install()⏬ Downloading https://github.com/conda-forge/miniforge/releases/download/23.11.0-0/Mambaforge-23.11.0-0-Linux-x86_64.sh...
📦 Installing...
📌 Adjusting configuration...
🩹 Patching environment...
⏲ Done in 0:00:15
🔁 Restarting kernel...
# Install the necessary libraries for financial analysis
!pip install wrds swig
# Install additional system dependencies
!apt-get update -y -qq && apt-get install -y -qq cmake libopenmpi-dev python3-dev zlib1g-dev libgl1-mesa-glx
# Install the FinRL library from GitHub
!pip install git+https://github.com/AI4Finance-Foundation/FinRL.gitCollecting wrds
Downloading wrds-3.2.0-py3-none-any.whl.metadata (5.8 kB)
Collecting swig
Downloading swig-4.2.1.post0-py2.py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl.metadata (3.5 kB)
Collecting numpy<1.27,>=1.26 (from wrds)
Downloading numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.0/61.0 kB 3.0 MB/s eta 0:00:00
ent already satisfied: packaging<23.3 in /usr/local/lib/python3.10/site-packages (from wrds) (23.2)
Collecting pandas<2.3,>=2.2 (from wrds)
Downloading pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (89 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 89.9/89.9 kB 4.4 MB/s eta 0:00:00
wrds)
Downloading psycopg2_binary-2.9.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.9 kB)
Collecting scipy<1.13,>=1.12 (from wrds)
Downloading scipy-1.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (60 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.4/60.4 kB 4.3 MB/s eta 0:00:00
y<2.1,>=2 (from wrds)
Downloading SQLAlchemy-2.0.36-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (9.7 kB)
Collecting python-dateutil>=2.8.2 (from pandas<2.3,>=2.2->wrds)
Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
Collecting pytz>=2020.1 (from pandas<2.3,>=2.2->wrds)
Downloading pytz-2024.2-py2.py3-none-any.whl.metadata (22 kB)
Collecting tzdata>=2022.7 (from pandas<2.3,>=2.2->wrds)
Downloading tzdata-2024.2-py2.py3-none-any.whl.metadata (1.4 kB)
Collecting typing-extensions>=4.6.0 (from sqlalchemy<2.1,>=2->wrds)
Downloading typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB)
Collecting greenlet!=0.4.17 (from sqlalchemy<2.1,>=2->wrds)
Downloading greenlet-3.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (3.8 kB)
Collecting six>=1.5 (from python-dateutil>=2.8.2->pandas<2.3,>=2.2->wrds)
Downloading six-1.16.0-py2.py3-none-any.whl.metadata (1.8 kB)
Downloading wrds-3.2.0-py3-none-any.whl (13 kB)
Downloading swig-4.2.1.post0-py2.py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl (1.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 31.4 MB/s eta 0:00:00
py-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 18.2/18.2 MB 72.3 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.1/13.1 MB 90.9 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.0/3.0 MB 72.7 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (38.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 38.4/38.4 MB 19.8 MB/s eta 0:00:00
y-2.0.36-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 82.1 MB/s eta 0:00:00
anylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (599 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 599.5/599.5 kB 34.6 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 229.9/229.9 kB 15.1 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 508.0/508.0 kB 27.8 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 346.6/346.6 kB 24.4 MB/s eta 0:00:00
py, greenlet, sqlalchemy, scipy, python-dateutil, pandas, wrds
Successfully installed greenlet-3.1.1 numpy-1.26.4 pandas-2.2.3 psycopg2-binary-2.9.10 python-dateutil-2.9.0.post0 pytz-2024.2 scipy-1.12.0 six-1.16.0 sqlalchemy-2.0.36 swig-4.2.1.post0 typing-extensions-4.12.2 tzdata-2024.2 wrds-3.2.0
{"id":"fdba30ae63b6426c990650031f5d6e76","pip_warning":{"packages":["six"]}}W: Skipping acquire of configured file 'main/source/Sources' as repository 'https://r2u.stat.illinois.edu/ubuntu jammy InRelease' does not seem to provide it (sources.list entry misspelt?)
Selecting previously unselected package libgl1-mesa-glx:amd64.
(Reading database ... 123623 files and directories currently installed.)
Preparing to unpack .../libgl1-mesa-glx_23.0.4-0ubuntu1~22.04.1_amd64.deb ...
Unpacking libgl1-mesa-glx:amd64 (23.0.4-0ubuntu1~22.04.1) ...
Setting up libgl1-mesa-glx:amd64 (23.0.4-0ubuntu1~22.04.1) ...
Collecting git+https://github.com/AI4Finance-Foundation/FinRL.git
Cloning https://github.com/AI4Finance-Foundation/FinRL.git to /tmp/pip-req-build-nplauypi
Running command git clone --filter=blob:none --quiet https://github.com/AI4Finance-Foundation/FinRL.git /tmp/pip-req-build-nplauypi
Resolved https://github.com/AI4Finance-Foundation/FinRL.git to commit 0496601ee2824ca675beb5a220afd9109ac02ffa
Installing build dependencies ... ents to build wheel ... etadata (pyproject.toml) ... /AI4Finance-Foundation/ElegantRL.git#egg=elegantrl (from finrl==0.3.6)
Cloning https://github.com/AI4Finance-Foundation/ElegantRL.git to /tmp/pip-install-3renqofl/elegantrl_600d50880f274b74a9793bcb08b354cc
Running command git clone --filter=blob:none --quiet https://github.com/AI4Finance-Foundation/ElegantRL.git /tmp/pip-install-3renqofl/elegantrl_600d50880f274b74a9793bcb08b354cc
Resolved https://github.com/AI4Finance-Foundation/ElegantRL.git to commit 6a016b12a8fef7d50305510f906abef05f558784
Preparing metadata (setup.py) ... finrl==0.3.6)
Downloading alpaca_trade_api-3.2.0-py3-none-any.whl.metadata (29 kB)
Collecting ccxt<4,>=3 (from finrl==0.3.6)
Downloading ccxt-3.1.60-py2.py3-none-any.whl.metadata (108 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 108.7/108.7 kB 615.0 kB/s eta 0:00:00
finrl==0.3.6)
Downloading exchange_calendars-4.5.7-py3-none-any.whl.metadata (37 kB)
Collecting jqdatasdk<2,>=1 (from finrl==0.3.6)
Downloading jqdatasdk-1.9.6-py3-none-any.whl.metadata (5.8 kB)
Collecting pyfolio<0.10,>=0.9 (from finrl==0.3.6)
Downloading pyfolio-0.9.2.tar.gz (91 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 91.1/91.1 kB 7.6 MB/s eta 0:00:00
etadata (setup.py) ... finrl==0.3.6)
Downloading pyportfolioopt-1.5.5-py3-none-any.whl.metadata (23 kB)
Collecting ray<3,>=2 (from ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading ray-2.38.0-cp310-cp310-manylinux2014_x86_64.whl.metadata (17 kB)
Collecting scikit-learn<2,>=1 (from finrl==0.3.6)
Downloading scikit_learn-1.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (13 kB)
Collecting stable-baselines3>=2.0.0a5 (from stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading stable_baselines3-2.4.0a11-py3-none-any.whl.metadata (4.5 kB)
Collecting stockstats<0.6,>=0.5 (from finrl==0.3.6)
Downloading stockstats-0.5.4-py2.py3-none-any.whl.metadata (26 kB)
Requirement already satisfied: wrds<4,>=3 in /usr/local/lib/python3.10/site-packages (from finrl==0.3.6) (3.2.0)
Collecting yfinance<0.3,>=0.2 (from finrl==0.3.6)
Downloading yfinance-0.2.48-py2.py3-none-any.whl.metadata (13 kB)
Requirement already satisfied: pandas>=0.18.1 in /usr/local/lib/python3.10/site-packages (from alpaca-trade-api<4,>=3->finrl==0.3.6) (2.2.3)
Requirement already satisfied: numpy>=1.11.1 in /usr/local/lib/python3.10/site-packages (from alpaca-trade-api<4,>=3->finrl==0.3.6) (1.26.4)
Requirement already satisfied: requests<3,>2 in /usr/local/lib/python3.10/site-packages (from alpaca-trade-api<4,>=3->finrl==0.3.6) (2.31.0)
Collecting urllib3<2,>1.24 (from alpaca-trade-api<4,>=3->finrl==0.3.6)
Downloading urllib3-1.26.20-py2.py3-none-any.whl.metadata (50 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 50.1/50.1 kB 3.3 MB/s eta 0:00:00
alpaca-trade-api<4,>=3->finrl==0.3.6)
Downloading websocket_client-1.8.0-py3-none-any.whl.metadata (8.0 kB)
Collecting websockets<11,>=9.0 (from alpaca-trade-api<4,>=3->finrl==0.3.6)
Downloading websockets-10.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.4 kB)
Collecting msgpack==1.0.3 (from alpaca-trade-api<4,>=3->finrl==0.3.6)
Downloading msgpack-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (8.7 kB)
Collecting aiohttp<4,>=3.8.3 (from alpaca-trade-api<4,>=3->finrl==0.3.6)
Downloading aiohttp-3.10.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.6 kB)
Collecting PyYAML==6.0.1 (from alpaca-trade-api<4,>=3->finrl==0.3.6)
Downloading PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB)
Collecting deprecation==2.1.0 (from alpaca-trade-api<4,>=3->finrl==0.3.6)
Downloading deprecation-2.1.0-py2.py3-none-any.whl.metadata (4.6 kB)
Requirement already satisfied: packaging in /usr/local/lib/python3.10/site-packages (from deprecation==2.1.0->alpaca-trade-api<4,>=3->finrl==0.3.6) (23.2)
Requirement already satisfied: setuptools>=60.9.0 in /usr/local/lib/python3.10/site-packages (from ccxt<4,>=3->finrl==0.3.6) (68.2.2)
Requirement already satisfied: certifi>=2018.1.18 in /usr/local/lib/python3.10/site-packages (from ccxt<4,>=3->finrl==0.3.6) (2023.11.17)
Collecting cryptography>=2.6.1 (from ccxt<4,>=3->finrl==0.3.6)
Downloading cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl.metadata (5.4 kB)
Collecting aiodns>=1.1.1 (from ccxt<4,>=3->finrl==0.3.6)
Downloading aiodns-3.2.0-py3-none-any.whl.metadata (4.0 kB)
Collecting yarl>=1.7.2 (from ccxt<4,>=3->finrl==0.3.6)
Downloading yarl-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (64 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 64.8/64.8 kB 5.0 MB/s eta 0:00:00
exchange-calendars<5,>=4->finrl==0.3.6)
Downloading pyluach-2.2.0-py3-none-any.whl.metadata (4.3 kB)
Collecting toolz (from exchange-calendars<5,>=4->finrl==0.3.6)
Downloading toolz-1.0.0-py3-none-any.whl.metadata (5.1 kB)
Requirement already satisfied: tzdata in /usr/local/lib/python3.10/site-packages (from exchange-calendars<5,>=4->finrl==0.3.6) (2024.2)
Collecting korean-lunar-calendar (from exchange-calendars<5,>=4->finrl==0.3.6)
Downloading korean_lunar_calendar-0.3.1-py3-none-any.whl.metadata (2.8 kB)
Requirement already satisfied: six in /usr/local/lib/python3.10/site-packages (from jqdatasdk<2,>=1->finrl==0.3.6) (1.16.0)
Requirement already satisfied: SQLAlchemy>=1.2.8 in /usr/local/lib/python3.10/site-packages (from jqdatasdk<2,>=1->finrl==0.3.6) (2.0.36)
Collecting pymysql>=0.7.6 (from jqdatasdk<2,>=1->finrl==0.3.6)
Downloading PyMySQL-1.1.1-py3-none-any.whl.metadata (4.4 kB)
Collecting thriftpy2!=0.5.1,>=0.3.9 (from jqdatasdk<2,>=1->finrl==0.3.6)
Downloading thriftpy2-0.5.2.tar.gz (782 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 782.3/782.3 kB 20.0 MB/s eta 0:00:00
ents to build wheel ... etadata (pyproject.toml) ... pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading ipython-8.29.0-py3-none-any.whl.metadata (5.0 kB)
Collecting matplotlib>=1.4.0 (from pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)
Requirement already satisfied: pytz>=2014.10 in /usr/local/lib/python3.10/site-packages (from pyfolio<0.10,>=0.9->finrl==0.3.6) (2024.2)
Requirement already satisfied: scipy>=0.14.0 in /usr/local/lib/python3.10/site-packages (from pyfolio<0.10,>=0.9->finrl==0.3.6) (1.12.0)
Collecting seaborn>=0.7.1 (from pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading seaborn-0.13.2-py3-none-any.whl.metadata (5.4 kB)
Collecting empyrical>=0.5.0 (from pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading empyrical-0.5.5.tar.gz (52 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 52.8/52.8 kB 4.5 MB/s eta 0:00:00
etadata (setup.py) ... pyportfolioopt<2,>=1->finrl==0.3.6)
Downloading cvxpy-1.5.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (8.8 kB)
Collecting click>=7.0 (from ray<3,>=2->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting filelock (from ray<3,>=2->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading filelock-3.16.1-py3-none-any.whl.metadata (2.9 kB)
Collecting jsonschema (from ray<3,>=2->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading jsonschema-4.23.0-py3-none-any.whl.metadata (7.9 kB)
Collecting protobuf!=3.19.5,>=3.15.3 (from ray<3,>=2->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading protobuf-5.28.3-cp38-abi3-manylinux2014_x86_64.whl.metadata (592 bytes)
Collecting aiosignal (from ray<3,>=2->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading aiosignal-1.3.1-py3-none-any.whl.metadata (4.0 kB)
Collecting frozenlist (from ray<3,>=2->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (13 kB)
Collecting tensorboardX>=1.9 (from ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading tensorboardX-2.6.2.2-py2.py3-none-any.whl.metadata (5.8 kB)
Collecting pyarrow>=6.0.1 (from ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading pyarrow-18.0.0-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (3.3 kB)
Collecting fsspec (from ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading fsspec-2024.10.0-py3-none-any.whl.metadata (11 kB)
Collecting aiohttp-cors (from ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading aiohttp_cors-0.7.0-py3-none-any.whl.metadata (20 kB)
Collecting colorful (from ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading colorful-0.5.6-py2.py3-none-any.whl.metadata (16 kB)
Collecting py-spy>=0.2.0 (from ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading py_spy-0.4.0-py2.py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl.metadata (16 kB)
Collecting opencensus (from ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading opencensus-0.11.4-py2.py3-none-any.whl.metadata (12 kB)
Collecting pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3 (from ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading pydantic-2.9.2-py3-none-any.whl.metadata (149 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 149.4/149.4 kB 10.7 MB/s eta 0:00:00
etheus-client>=0.7.1 (from ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading prometheus_client-0.21.0-py3-none-any.whl.metadata (1.8 kB)
Collecting smart-open (from ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading smart_open-7.0.5-py3-none-any.whl.metadata (24 kB)
Collecting virtualenv!=20.21.1,>=20.0.24 (from ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading virtualenv-20.27.1-py3-none-any.whl.metadata (4.5 kB)
Collecting grpcio>=1.42.0 (from ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading grpcio-1.67.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.9 kB)
Collecting memray (from ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading memray-1.14.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.metadata (19 kB)
Collecting joblib>=1.2.0 (from scikit-learn<2,>=1->finrl==0.3.6)
Downloading joblib-1.4.2-py3-none-any.whl.metadata (5.4 kB)
Collecting threadpoolctl>=3.1.0 (from scikit-learn<2,>=1->finrl==0.3.6)
Downloading threadpoolctl-3.5.0-py3-none-any.whl.metadata (13 kB)
Collecting gymnasium<1.1.0,>=0.29.1 (from stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading gymnasium-1.0.0-py3-none-any.whl.metadata (9.5 kB)
Collecting torch>=1.13 (from stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading torch-2.5.1-cp310-cp310-manylinux1_x86_64.whl.metadata (28 kB)
Collecting cloudpickle (from stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading cloudpickle-3.1.0-py3-none-any.whl.metadata (7.0 kB)
Collecting opencv-python (from stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading opencv_python-4.10.0.84-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (20 kB)
Collecting pygame (from stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading pygame-2.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (12 kB)
Collecting tensorboard>=2.9.1 (from stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading tensorboard-2.18.0-py3-none-any.whl.metadata (1.6 kB)
Collecting psutil (from stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading psutil-6.1.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (22 kB)
Requirement already satisfied: tqdm in /usr/local/lib/python3.10/site-packages (from stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6) (4.66.1)
Collecting rich (from stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading rich-13.9.4-py3-none-any.whl.metadata (18 kB)
Collecting ale-py>=0.9.0 (from stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading ale_py-0.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.6 kB)
Collecting pillow (from stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading pillow-11.0.0-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (9.1 kB)
Requirement already satisfied: psycopg2-binary<2.10,>=2.9 in /usr/local/lib/python3.10/site-packages (from wrds<4,>=3->finrl==0.3.6) (2.9.10)
Collecting multitasking>=0.0.7 (from yfinance<0.3,>=0.2->finrl==0.3.6)
Downloading multitasking-0.0.11-py3-none-any.whl.metadata (5.5 kB)
Collecting lxml>=4.9.1 (from yfinance<0.3,>=0.2->finrl==0.3.6)
Downloading lxml-5.3.0-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (3.8 kB)
Requirement already satisfied: platformdirs>=2.0.0 in /usr/local/lib/python3.10/site-packages (from yfinance<0.3,>=0.2->finrl==0.3.6) (4.1.0)
Collecting frozendict>=2.3.4 (from yfinance<0.3,>=0.2->finrl==0.3.6)
Downloading frozendict-2.4.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (23 kB)
Collecting peewee>=3.16.2 (from yfinance<0.3,>=0.2->finrl==0.3.6)
Downloading peewee-3.17.7.tar.gz (939 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 939.5/939.5 kB 43.7 MB/s eta 0:00:00
ents to build wheel ... etadata (pyproject.toml) ... yfinance<0.3,>=0.2->finrl==0.3.6)
Downloading beautifulsoup4-4.12.3-py3-none-any.whl.metadata (3.8 kB)
Collecting html5lib>=1.1 (from yfinance<0.3,>=0.2->finrl==0.3.6)
Downloading html5lib-1.1-py2.py3-none-any.whl.metadata (16 kB)
Collecting th (from elegantrl@ git+https://github.com/AI4Finance-Foundation/ElegantRL.git#egg=elegantrl->finrl==0.3.6)
Downloading th-0.4.1-py3-none-any.whl.metadata (3.4 kB)
Collecting pycares>=4.0.0 (from aiodns>=1.1.1->ccxt<4,>=3->finrl==0.3.6)
Downloading pycares-4.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.1 kB)
Collecting aiohappyeyeballs>=2.3.0 (from aiohttp<4,>=3.8.3->alpaca-trade-api<4,>=3->finrl==0.3.6)
Downloading aiohappyeyeballs-2.4.3-py3-none-any.whl.metadata (6.1 kB)
Collecting attrs>=17.3.0 (from aiohttp<4,>=3.8.3->alpaca-trade-api<4,>=3->finrl==0.3.6)
Downloading attrs-24.2.0-py3-none-any.whl.metadata (11 kB)
Collecting multidict<7.0,>=4.5 (from aiohttp<4,>=3.8.3->alpaca-trade-api<4,>=3->finrl==0.3.6)
Downloading multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.0 kB)
Collecting async-timeout<5.0,>=4.0 (from aiohttp<4,>=3.8.3->alpaca-trade-api<4,>=3->finrl==0.3.6)
Downloading async_timeout-4.0.3-py3-none-any.whl.metadata (4.2 kB)
Requirement already satisfied: typing-extensions in /usr/local/lib/python3.10/site-packages (from ale-py>=0.9.0->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6) (4.12.2)
Collecting soupsieve>1.2 (from beautifulsoup4>=4.11.1->yfinance<0.3,>=0.2->finrl==0.3.6)
Downloading soupsieve-2.6-py3-none-any.whl.metadata (4.6 kB)
Requirement already satisfied: cffi>=1.12 in /usr/local/lib/python3.10/site-packages (from cryptography>=2.6.1->ccxt<4,>=3->finrl==0.3.6) (1.16.0)
Collecting osqp>=0.6.2 (from cvxpy<2.0.0,>=1.1.19->pyportfolioopt<2,>=1->finrl==0.3.6)
Downloading osqp-0.6.7.post3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.9 kB)
Collecting ecos>=2 (from cvxpy<2.0.0,>=1.1.19->pyportfolioopt<2,>=1->finrl==0.3.6)
Downloading ecos-2.0.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (8.0 kB)
Collecting clarabel>=0.5.0 (from cvxpy<2.0.0,>=1.1.19->pyportfolioopt<2,>=1->finrl==0.3.6)
Downloading clarabel-0.9.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.8 kB)
Collecting scs>=3.2.4.post1 (from cvxpy<2.0.0,>=1.1.19->pyportfolioopt<2,>=1->finrl==0.3.6)
Downloading scs-3.2.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB)
Collecting pandas-datareader>=0.2 (from empyrical>=0.5.0->pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading pandas_datareader-0.10.0-py3-none-any.whl.metadata (2.9 kB)
Collecting farama-notifications>=0.0.1 (from gymnasium<1.1.0,>=0.29.1->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading Farama_Notifications-0.0.4-py3-none-any.whl.metadata (558 bytes)
Collecting webencodings (from html5lib>=1.1->yfinance<0.3,>=0.2->finrl==0.3.6)
Downloading webencodings-0.5.1-py2.py3-none-any.whl.metadata (2.1 kB)
Collecting decorator (from ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading decorator-5.1.1-py3-none-any.whl.metadata (4.0 kB)
Collecting jedi>=0.16 (from ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading jedi-0.19.1-py2.py3-none-any.whl.metadata (22 kB)
Collecting matplotlib-inline (from ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading matplotlib_inline-0.1.7-py3-none-any.whl.metadata (3.9 kB)
Collecting prompt-toolkit<3.1.0,>=3.0.41 (from ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading prompt_toolkit-3.0.48-py3-none-any.whl.metadata (6.4 kB)
Collecting pygments>=2.4.0 (from ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading pygments-2.18.0-py3-none-any.whl.metadata (2.5 kB)
Collecting stack-data (from ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading stack_data-0.6.3-py3-none-any.whl.metadata (18 kB)
Collecting traitlets>=5.13.0 (from ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading traitlets-5.14.3-py3-none-any.whl.metadata (10 kB)
Collecting exceptiongroup (from ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading exceptiongroup-1.2.2-py3-none-any.whl.metadata (6.6 kB)
Collecting pexpect>4.3 (from ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading pexpect-4.9.0-py2.py3-none-any.whl.metadata (2.5 kB)
Collecting contourpy>=1.0.1 (from matplotlib>=1.4.0->pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading contourpy-1.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.4 kB)
Collecting cycler>=0.10 (from matplotlib>=1.4.0->pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)
Collecting fonttools>=4.22.0 (from matplotlib>=1.4.0->pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading fonttools-4.54.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (163 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 163.7/163.7 kB 11.8 MB/s eta 0:00:00
matplotlib>=1.4.0->pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.metadata (6.3 kB)
Collecting pyparsing>=2.3.1 (from matplotlib>=1.4.0->pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading pyparsing-3.2.0-py3-none-any.whl.metadata (5.0 kB)
Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/site-packages (from matplotlib>=1.4.0->pyfolio<0.10,>=0.9->finrl==0.3.6) (2.9.0.post0)
Collecting annotated-types>=0.6.0 (from pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB)
Collecting pydantic-core==2.23.4 (from pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.6 kB)
Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/site-packages (from requests<3,>2->alpaca-trade-api<4,>=3->finrl==0.3.6) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/site-packages (from requests<3,>2->alpaca-trade-api<4,>=3->finrl==0.3.6) (3.6)
Requirement already satisfied: greenlet!=0.4.17 in /usr/local/lib/python3.10/site-packages (from SQLAlchemy>=1.2.8->jqdatasdk<2,>=1->finrl==0.3.6) (3.1.1)
Collecting absl-py>=0.4 (from tensorboard>=2.9.1->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading absl_py-2.1.0-py3-none-any.whl.metadata (2.3 kB)
Collecting markdown>=2.6.8 (from tensorboard>=2.9.1->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading Markdown-3.7-py3-none-any.whl.metadata (7.0 kB)
Collecting tensorboard-data-server<0.8.0,>=0.7.0 (from tensorboard>=2.9.1->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading tensorboard_data_server-0.7.2-py3-none-manylinux_2_31_x86_64.whl.metadata (1.1 kB)
Collecting werkzeug>=1.0.1 (from tensorboard>=2.9.1->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading werkzeug-3.1.2-py3-none-any.whl.metadata (3.7 kB)
Collecting Cython>=3.0.10 (from thriftpy2!=0.5.1,>=0.3.9->jqdatasdk<2,>=1->finrl==0.3.6)
Using cached Cython-3.0.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.2 kB)
Collecting ply<4.0,>=3.4 (from thriftpy2!=0.5.1,>=0.3.9->jqdatasdk<2,>=1->finrl==0.3.6)
Downloading ply-3.11-py2.py3-none-any.whl.metadata (844 bytes)
Collecting networkx (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading networkx-3.4.2-py3-none-any.whl.metadata (6.3 kB)
Collecting jinja2 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading jinja2-3.1.4-py3-none-any.whl.metadata (2.6 kB)
Collecting nvidia-cuda-nvrtc-cu12==12.4.127 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cuda-runtime-cu12==12.4.127 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cuda-cupti-cu12==12.4.127 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)
Collecting nvidia-cudnn-cu12==9.1.0.70 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)
Collecting nvidia-cublas-cu12==12.4.5.8 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cufft-cu12==11.2.1.3 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-curand-cu12==10.3.5.147 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cusolver-cu12==11.6.1.9 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)
Collecting nvidia-cusparse-cu12==12.3.1.170 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)
Collecting nvidia-nccl-cu12==2.21.5 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading nvidia_nccl_cu12-2.21.5-py3-none-manylinux2014_x86_64.whl.metadata (1.8 kB)
Collecting nvidia-nvtx-cu12==12.4.127 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading nvidia_nvtx_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.7 kB)
Collecting nvidia-nvjitlink-cu12==12.4.127 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting triton==3.1.0 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading triton-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.3 kB)
Collecting sympy==1.13.1 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading sympy-1.13.1-py3-none-any.whl.metadata (12 kB)
Collecting mpmath<1.4,>=1.1.0 (from sympy==1.13.1->torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB)
Collecting distlib<1,>=0.3.7 (from virtualenv!=20.21.1,>=20.0.24->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading distlib-0.3.9-py2.py3-none-any.whl.metadata (5.2 kB)
Collecting propcache>=0.2.0 (from yarl>=1.7.2->ccxt<4,>=3->finrl==0.3.6)
Downloading propcache-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.7 kB)
Collecting jsonschema-specifications>=2023.03.6 (from jsonschema->ray<3,>=2->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading jsonschema_specifications-2024.10.1-py3-none-any.whl.metadata (3.0 kB)
Collecting referencing>=0.28.4 (from jsonschema->ray<3,>=2->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading referencing-0.35.1-py3-none-any.whl.metadata (2.8 kB)
Collecting rpds-py>=0.7.1 (from jsonschema->ray<3,>=2->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading rpds_py-0.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.2 kB)
Collecting textual>=0.41.0 (from memray->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading textual-0.85.2-py3-none-any.whl.metadata (5.6 kB)
Collecting markdown-it-py>=2.2.0 (from rich->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB)
Collecting opencensus-context>=0.1.3 (from opencensus->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading opencensus_context-0.1.3-py2.py3-none-any.whl.metadata (3.3 kB)
Collecting google-api-core<3.0.0,>=1.0.0 (from opencensus->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading google_api_core-2.22.0-py3-none-any.whl.metadata (2.9 kB)
Collecting wrapt (from smart-open->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.6 kB)
Collecting niltype<2.0,>=0.3 (from th->elegantrl@ git+https://github.com/AI4Finance-Foundation/ElegantRL.git#egg=elegantrl->finrl==0.3.6)
Downloading niltype-1.0.2-py3-none-any.whl.metadata (4.3 kB)
Requirement already satisfied: pycparser in /usr/local/lib/python3.10/site-packages (from cffi>=1.12->cryptography>=2.6.1->ccxt<4,>=3->finrl==0.3.6) (2.21)
Collecting googleapis-common-protos<2.0.dev0,>=1.56.2 (from google-api-core<3.0.0,>=1.0.0->opencensus->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading googleapis_common_protos-1.65.0-py2.py3-none-any.whl.metadata (1.5 kB)
Collecting proto-plus<2.0.0dev,>=1.22.3 (from google-api-core<3.0.0,>=1.0.0->opencensus->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading proto_plus-1.25.0-py3-none-any.whl.metadata (2.2 kB)
Collecting google-auth<3.0.dev0,>=2.14.1 (from google-api-core<3.0.0,>=1.0.0->opencensus->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading google_auth-2.35.0-py2.py3-none-any.whl.metadata (4.7 kB)
Collecting parso<0.9.0,>=0.8.3 (from jedi>=0.16->ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading parso-0.8.4-py2.py3-none-any.whl.metadata (7.7 kB)
Collecting MarkupSafe>=2.0 (from jinja2->torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.0 kB)
Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)
Collecting qdldl (from osqp>=0.6.2->cvxpy<2.0.0,>=1.1.19->pyportfolioopt<2,>=1->finrl==0.3.6)
Downloading qdldl-0.1.7.post4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.7 kB)
Collecting ptyprocess>=0.5 (from pexpect>4.3->ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading ptyprocess-0.7.0-py2.py3-none-any.whl.metadata (1.3 kB)
Collecting wcwidth (from prompt-toolkit<3.1.0,>=3.0.41->ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading wcwidth-0.2.13-py2.py3-none-any.whl.metadata (14 kB)
Collecting executing>=1.2.0 (from stack-data->ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading executing-2.1.0-py2.py3-none-any.whl.metadata (8.9 kB)
Collecting asttokens>=2.1.0 (from stack-data->ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading asttokens-2.4.1-py2.py3-none-any.whl.metadata (5.2 kB)
Collecting pure-eval (from stack-data->ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
Downloading pure_eval-0.2.3-py3-none-any.whl.metadata (6.3 kB)
Collecting cachetools<6.0,>=2.0.0 (from google-auth<3.0.dev0,>=2.14.1->google-api-core<3.0.0,>=1.0.0->opencensus->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading cachetools-5.5.0-py3-none-any.whl.metadata (5.3 kB)
Collecting pyasn1-modules>=0.2.1 (from google-auth<3.0.dev0,>=2.14.1->google-api-core<3.0.0,>=1.0.0->opencensus->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading pyasn1_modules-0.4.1-py3-none-any.whl.metadata (3.5 kB)
Collecting rsa<5,>=3.1.4 (from google-auth<3.0.dev0,>=2.14.1->google-api-core<3.0.0,>=1.0.0->opencensus->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading rsa-4.9-py3-none-any.whl.metadata (4.2 kB)
Collecting linkify-it-py<3,>=1 (from markdown-it-py[linkify,plugins]>=2.1.0->textual>=0.41.0->memray->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading linkify_it_py-2.0.3-py3-none-any.whl.metadata (8.5 kB)
Collecting mdit-py-plugins (from markdown-it-py[linkify,plugins]>=2.1.0->textual>=0.41.0->memray->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading mdit_py_plugins-0.4.2-py3-none-any.whl.metadata (2.8 kB)
Collecting uc-micro-py (from linkify-it-py<3,>=1->markdown-it-py[linkify,plugins]>=2.1.0->textual>=0.41.0->memray->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading uc_micro_py-1.0.3-py3-none-any.whl.metadata (2.0 kB)
Collecting pyasn1<0.7.0,>=0.4.6 (from pyasn1-modules>=0.2.1->google-auth<3.0.dev0,>=2.14.1->google-api-core<3.0.0,>=1.0.0->opencensus->ray[default,tune]<3,>=2->finrl==0.3.6)
Downloading pyasn1-0.6.1-py3-none-any.whl.metadata (8.4 kB)
Downloading alpaca_trade_api-3.2.0-py3-none-any.whl (34 kB)
Downloading deprecation-2.1.0-py2.py3-none-any.whl (11 kB)
Downloading msgpack-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (323 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 323.7/323.7 kB 22.4 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (705 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 705.5/705.5 kB 41.8 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.0/4.0 MB 75.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 196.7/196.7 kB 14.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 77.3/77.3 kB 6.0 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.9/61.9 kB 3.3 MB/s eta 0:00:00
anylinux2014_x86_64.whl (66.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 66.0/66.0 MB 9.9 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.3/13.3 MB 90.5 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 183.9/183.9 kB 15.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.1/101.1 kB 8.6 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 43.9 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 51.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 147.9/147.9 kB 11.2 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 97.9/97.9 kB 8.1 MB/s eta 0:00:00
anylinux_2_28_x86_64.whl (4.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.0/4.0 MB 52.8 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 44.3 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (117 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 117.4/117.4 kB 9.1 MB/s eta 0:00:00
anylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (241 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 241.9/241.9 kB 17.2 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.9/5.9 MB 62.3 MB/s eta 0:00:00
nasium-1.0.0-py3-none-any.whl (958 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 958.1/958.1 kB 45.5 MB/s eta 0:00:00
l5lib-1.1-py2.py3-none-any.whl (112 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 112.2/112.2 kB 8.8 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 819.9/819.9 kB 39.8 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 301.8/301.8 kB 20.1 MB/s eta 0:00:00
l-5.3.0-cp310-cp310-manylinux_2_28_x86_64.whl (5.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.0/5.0 MB 56.0 MB/s eta 0:00:00
atplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.3/8.3 MB 70.8 MB/s eta 0:00:00
ultitasking-0.0.11-py3-none-any.whl (8.5 kB)
Downloading pillow-11.0.0-cp310-cp310-manylinux_2_28_x86_64.whl (4.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.4/4.4 MB 64.7 MB/s eta 0:00:00
etheus_client-0.21.0-py3-none-any.whl (54 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 54.7/54.7 kB 4.1 MB/s eta 0:00:00
anylinux2014_x86_64.whl (316 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 316.6/316.6 kB 21.8 MB/s eta 0:00:00
anylinux_2_5_x86_64.manylinux1_x86_64.whl (2.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.7/2.7 MB 52.4 MB/s eta 0:00:00
anylinux_2_28_x86_64.whl (40.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.0/40.0 MB 16.2 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 434.9/434.9 kB 27.6 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 53.1 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 45.0/45.0 kB 3.4 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 294.9/294.9 kB 21.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.5/5.5 MB 68.2 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.7/101.7 kB 7.5 MB/s eta 0:00:00
anylinux1_x86_64.whl (906.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 906.4/906.4 MB 2.0 MB/s eta 0:00:00
anylinux2014_x86_64.whl (363.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 363.4/363.4 MB 4.1 MB/s eta 0:00:00
anylinux2014_x86_64.whl (13.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.8/13.8 MB 91.3 MB/s eta 0:00:00
anylinux2014_x86_64.whl (24.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 24.6/24.6 MB 71.5 MB/s eta 0:00:00
e_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (883 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 883.7/883.7 kB 42.7 MB/s eta 0:00:00
anylinux2014_x86_64.whl (664.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 664.8/664.8 MB 2.8 MB/s eta 0:00:00
anylinux2014_x86_64.whl (211.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 211.5/211.5 MB 4.8 MB/s eta 0:00:00
anylinux2014_x86_64.whl (56.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.3/56.3 MB 12.2 MB/s eta 0:00:00
anylinux2014_x86_64.whl (127.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 127.9/127.9 MB 7.9 MB/s eta 0:00:00
anylinux2014_x86_64.whl (207.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 207.5/207.5 MB 6.2 MB/s eta 0:00:00
anylinux2014_x86_64.whl (188.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 188.7/188.7 MB 5.9 MB/s eta 0:00:00
anylinux2014_x86_64.whl (21.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 21.1/21.1 MB 51.9 MB/s eta 0:00:00
anylinux2014_x86_64.whl (99 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 99.1/99.1 kB 7.6 MB/s eta 0:00:00
py-1.13.1-py3-none-any.whl (6.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.2/6.2 MB 55.4 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (209.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 209.5/209.5 MB 5.2 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 144.2/144.2 kB 10.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 82.2 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 58.8/58.8 kB 4.6 MB/s eta 0:00:00
anylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (106 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 106.8/106.8 kB 8.8 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (318 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 318.7/318.7 kB 17.5 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 201.4/201.4 kB 15.8 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 179.6/179.6 kB 9.2 MB/s eta 0:00:00
a-4.23.0-py3-none-any.whl (88 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 88.5/88.5 kB 6.7 MB/s eta 0:00:00
emray-1.14.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (8.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.3/8.3 MB 93.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 242.4/242.4 kB 13.6 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 128.2/128.2 kB 10.4 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (62.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.5/62.5 MB 11.4 MB/s eta 0:00:00
anylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (287 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 287.3/287.3 kB 19.7 MB/s eta 0:00:00
e-2.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.0/14.0 MB 82.0 MB/s eta 0:00:00
art_open-7.0.5-py3-none-any.whl (61 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.4/61.4 kB 4.7 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.4/56.4 kB 4.2 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.7/133.7 kB 10.1 MB/s eta 0:00:00
eout-4.0.3-py3-none-any.whl (5.7 kB)
Downloading attrs-24.2.0-py3-none-any.whl (63 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 63.0/63.0 kB 5.4 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 56.6 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (322 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 322.0/322.0 kB 24.0 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB)
Downloading distlib-0.3.9-py2.py3-none-any.whl (468 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 469.0/469.0 kB 31.9 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (218 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 218.9/218.9 kB 15.5 MB/s eta 0:00:00
a_Notifications-0.0.4-py3-none-any.whl (2.5 kB)
Downloading fonttools-4.54.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.6/4.6 MB 80.7 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 156.5/156.5 kB 12.0 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 56.9 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.3/133.3 kB 10.4 MB/s eta 0:00:00
a_specifications-2024.10.1-py3-none-any.whl (18 kB)
Downloading kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 60.6 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 106.3/106.3 kB 8.1 MB/s eta 0:00:00
arkdown_it_py-3.0.0-py3-none-any.whl (87 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 87.5/87.5 kB 6.6 MB/s eta 0:00:00
ultidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (124 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 124.6/124.6 kB 9.5 MB/s eta 0:00:00
anylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (297 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 297.5/297.5 kB 20.9 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 109.5/109.5 kB 7.6 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 63.8/63.8 kB 5.4 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 49.6/49.6 kB 3.9 MB/s eta 0:00:00
pt_toolkit-3.0.48-py3-none-any.whl (386 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 386.6/386.6 kB 25.7 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (208 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 208.9/208.9 kB 14.5 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (288 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 288.7/288.7 kB 20.4 MB/s eta 0:00:00
ents-2.18.0-py3-none-any.whl (1.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 54.7 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 106.9/106.9 kB 8.1 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (360 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 360.6/360.6 kB 17.4 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.4/10.4 MB 64.1 MB/s eta 0:00:00
anylinux_2_31_x86_64.whl (6.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.6/6.6 MB 85.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 614.9/614.9 kB 37.0 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 85.4/85.4 kB 6.8 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 224.4/224.4 kB 16.9 MB/s eta 0:00:00
atplotlib_inline-0.1.7-py3-none-any.whl (9.9 kB)
Downloading networkx-3.4.2-py3-none-any.whl (1.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 56.7 MB/s eta 0:00:00
anylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (80 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 80.3/80.3 kB 6.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 209.0/209.0 kB 15.8 MB/s eta 0:00:00
mon_protos-1.65.0-py2.py3-none-any.whl (220 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 220.9/220.9 kB 16.8 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (20 kB)
Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)
Downloading mpmath-1.3.0-py3-none-any.whl (536 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 34.1 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 103.7/103.7 kB 9.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 50.1/50.1 kB 4.2 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 43.1 MB/s eta 0:00:00
odules-0.4.1-py3-none-any.whl (181 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 181.5/181.5 kB 14.6 MB/s eta 0:00:00
dit_py_plugins-0.4.2-py3-none-any.whl (55 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 55.3/55.3 kB 4.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 83.1/83.1 kB 6.6 MB/s eta 0:00:00
icro_py-1.0.3-py3-none-any.whl (6.2 kB)
Building wheels for collected packages: finrl, pyfolio, elegantrl, empyrical, peewee, thriftpy2
Building wheel for finrl (pyproject.toml) ... e=finrl-0.3.6-py3-none-any.whl size=4691755 sha256=3eda17b41326452cd26c735c3d8be4c6992e404366746fdf42d3e69aadd703a4
Stored in directory: /tmp/pip-ephem-wheel-cache-jvw2nji8/wheels/72/3b/1a/0fc805a8cc65ecd5bfe4f74a3c586b6075678b8ba53fd8f749
Building wheel for pyfolio (setup.py) ... e=pyfolio-0.9.2-py3-none-any.whl size=88650 sha256=cc832264ce3ba0dd48dde208fe67ff892c6f9fdaef008d70cbeb5e069ea0e698
Stored in directory: /root/.cache/pip/wheels/71/38/bc/e53700cfd8b0ad6b539d2fbaaf060ed8a299e7622a5b86ef42
Building wheel for elegantrl (setup.py) ... e=ElegantRL-0.3.10-py3-none-any.whl size=408744 sha256=7324c474f0d5242d209babd26b6e67669b0ce23c0a0112980a711de177bec7da
Stored in directory: /tmp/pip-ephem-wheel-cache-jvw2nji8/wheels/c0/51/a5/b05f165548221bc570f7223babd33e2992fa873cdcebe2d229
Building wheel for empyrical (setup.py) ... pyrical: filename=empyrical-0.5.5-py3-none-any.whl size=39754 sha256=53316b77d5897b900356be7586744ed0cd36bd234c4ac0e33c132954f914a907
Stored in directory: /root/.cache/pip/wheels/0e/2e/f2/d6d2d9a1eb8fbbd9949bb5d4c00f753e3b74e5bd7ed10b1d36
Building wheel for peewee (pyproject.toml) ... e=peewee-3.17.7-cp310-cp310-linux_x86_64.whl size=300451 sha256=a5413d70bdcced1d1a6ccf1a11c5dfd210bbac76f7f96b0b6c5f3699dbf6aefd
Stored in directory: /root/.cache/pip/wheels/8d/0e/f8/48eb93a200fca4c502d7590613616fa4d2c9533f7308f9e28a
Building wheel for thriftpy2 (pyproject.toml) ... e=thriftpy2-0.5.2-cp310-cp310-linux_x86_64.whl size=841613 sha256=5ecc712e8366c2510c265ac02d81f6b90c2f42331dc57b7f71f680e1e678724e
Stored in directory: /root/.cache/pip/wheels/90/28/5f/279788e86e2eaccb3edc73bde9c815a9527602739a56344ff7
Successfully built finrl pyfolio elegantrl empyrical peewee thriftpy2
Installing collected packages: webencodings, wcwidth, py-spy, pure-eval, ptyprocess, ply, peewee, opencensus-context, multitasking, msgpack, mpmath, korean-lunar-calendar, farama-notifications, distlib, colorful, wrapt, websockets, websocket-client, urllib3, uc-micro-py, traitlets, toolz, threadpoolctl, tensorboard-data-server, sympy, soupsieve, rpds-py, PyYAML, pyparsing, pymysql, pyluach, pygments, pygame, pydantic-core, pyasn1, pyarrow, psutil, protobuf, propcache, prompt-toolkit, prometheus-client, pillow, pexpect, parso, opencv-python, nvidia-nvtx-cu12, nvidia-nvjitlink-cu12, nvidia-nccl-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, niltype, networkx, multidict, mdurl, MarkupSafe, markdown, lxml, kiwisolver, joblib, html5lib, grpcio, fsspec, frozenlist, frozendict, fonttools, filelock, executing, exceptiongroup, deprecation, decorator, Cython, cycler, contourpy, cloudpickle, click, cachetools, attrs, async-timeout, asttokens, annotated-types, ale-py, aiohappyeyeballs, absl-py, yarl, werkzeug, virtualenv, triton, thriftpy2, th, tensorboardX, stack-data, smart-open, scs, scikit-learn, rsa, referencing, qdldl, pydantic, pycares, pyasn1-modules, proto-plus, nvidia-cusparse-cu12, nvidia-cudnn-cu12, matplotlib-inline, matplotlib, markdown-it-py, linkify-it-py, jinja2, jedi, gymnasium, googleapis-common-protos, ecos, cryptography, clarabel, beautifulsoup4, aiosignal, yfinance, tensorboard, stockstats, seaborn, rich, pandas-datareader, osqp, nvidia-cusolver-cu12, mdit-py-plugins, jsonschema-specifications, jqdatasdk, ipython, google-auth, exchange-calendars, elegantrl, aiohttp, aiodns, torch, jsonschema, google-api-core, empyrical, cvxpy, ccxt, alpaca-trade-api, aiohttp-cors, textual, stable-baselines3, ray, pyportfolioopt, pyfolio, opencensus, memray, finrl
Attempting uninstall: urllib3
Found existing installation: urllib3 2.1.0
Uninstalling urllib3-2.1.0:
Successfully uninstalled urllib3-2.1.0
Successfully installed Cython-3.0.11 MarkupSafe-3.0.2 PyYAML-6.0.1 absl-py-2.1.0 aiodns-3.2.0 aiohappyeyeballs-2.4.3 aiohttp-3.10.10 aiohttp-cors-0.7.0 aiosignal-1.3.1 ale-py-0.10.1 alpaca-trade-api-3.2.0 annotated-types-0.7.0 asttokens-2.4.1 async-timeout-4.0.3 attrs-24.2.0 beautifulsoup4-4.12.3 cachetools-5.5.0 ccxt-3.1.60 clarabel-0.9.0 click-8.1.7 cloudpickle-3.1.0 colorful-0.5.6 contourpy-1.3.0 cryptography-43.0.3 cvxpy-1.5.3 cycler-0.12.1 decorator-5.1.1 deprecation-2.1.0 distlib-0.3.9 ecos-2.0.14 elegantrl-0.3.10 empyrical-0.5.5 exceptiongroup-1.2.2 exchange-calendars-4.5.7 executing-2.1.0 farama-notifications-0.0.4 filelock-3.16.1 finrl-0.3.6 fonttools-4.54.1 frozendict-2.4.6 frozenlist-1.5.0 fsspec-2024.10.0 google-api-core-2.22.0 google-auth-2.35.0 googleapis-common-protos-1.65.0 grpcio-1.67.1 gymnasium-1.0.0 html5lib-1.1 ipython-8.29.0 jedi-0.19.1 jinja2-3.1.4 joblib-1.4.2 jqdatasdk-1.9.6 jsonschema-4.23.0 jsonschema-specifications-2024.10.1 kiwisolver-1.4.7 korean-lunar-calendar-0.3.1 linkify-it-py-2.0.3 lxml-5.3.0 markdown-3.7 markdown-it-py-3.0.0 matplotlib-3.9.2 matplotlib-inline-0.1.7 mdit-py-plugins-0.4.2 mdurl-0.1.2 memray-1.14.0 mpmath-1.3.0 msgpack-1.0.3 multidict-6.1.0 multitasking-0.0.11 networkx-3.4.2 niltype-1.0.2 nvidia-cublas-cu12-12.4.5.8 nvidia-cuda-cupti-cu12-12.4.127 nvidia-cuda-nvrtc-cu12-12.4.127 nvidia-cuda-runtime-cu12-12.4.127 nvidia-cudnn-cu12-9.1.0.70 nvidia-cufft-cu12-11.2.1.3 nvidia-curand-cu12-10.3.5.147 nvidia-cusolver-cu12-11.6.1.9 nvidia-cusparse-cu12-12.3.1.170 nvidia-nccl-cu12-2.21.5 nvidia-nvjitlink-cu12-12.4.127 nvidia-nvtx-cu12-12.4.127 opencensus-0.11.4 opencensus-context-0.1.3 opencv-python-4.10.0.84 osqp-0.6.7.post3 pandas-datareader-0.10.0 parso-0.8.4 peewee-3.17.7 pexpect-4.9.0 pillow-11.0.0 ply-3.11 prometheus-client-0.21.0 prompt-toolkit-3.0.48 propcache-0.2.0 proto-plus-1.25.0 protobuf-5.28.3 psutil-6.1.0 ptyprocess-0.7.0 pure-eval-0.2.3 py-spy-0.4.0 pyarrow-18.0.0 pyasn1-0.6.1 pyasn1-modules-0.4.1 pycares-4.4.0 pydantic-2.9.2 pydantic-core-2.23.4 pyfolio-0.9.2 pygame-2.6.1 pygments-2.18.0 pyluach-2.2.0 pymysql-1.1.1 pyparsing-3.2.0 pyportfolioopt-1.5.5 qdldl-0.1.7.post4 ray-2.38.0 referencing-0.35.1 rich-13.9.4 rpds-py-0.20.1 rsa-4.9 scikit-learn-1.5.2 scs-3.2.7 seaborn-0.13.2 smart-open-7.0.5 soupsieve-2.6 stable-baselines3-2.4.0a11 stack-data-0.6.3 stockstats-0.5.4 sympy-1.13.1 tensorboard-2.18.0 tensorboard-data-server-0.7.2 tensorboardX-2.6.2.2 textual-0.85.2 th-0.4.1 threadpoolctl-3.5.0 thriftpy2-0.5.2 toolz-1.0.0 torch-2.5.1 traitlets-5.14.3 triton-3.1.0 uc-micro-py-1.0.3 urllib3-1.26.20 virtualenv-20.27.1 wcwidth-0.2.13 webencodings-0.5.1 websocket-client-1.8.0 websockets-10.4 werkzeug-3.1.2 wrapt-1.16.0 yarl-1.17.1 yfinance-0.2.48
{"id":"0297673910af4be6a000b0ad6ccf7377","pip_warning":{"packages":["cycler","google","kiwisolver","matplotlib_inline","pexpect","prompt_toolkit","wcwidth"]}}import warnings
warnings.filterwarnings("ignore")from finrl.meta.preprocessor.preprocessors import FeatureEngineer, data_split
from finrl.meta.env_stock_trading.env_stocktrading import StockTradingEnv
from finrl.agents.stablebaselines3.models import DRLAgent, DRLEnsembleAgent
from finrl.plot import backtest_stats, backtest_plot, get_daily_return, get_baseline
from stable_baselines3 import A2C, PPO, DDPG, SAC, TD3import numpy as np
import matplotlib.pyplot as plt
import datetime
import pandas as pd
%matplotlib inlinefrom pprint import pprint
import itertools
import sys
sys.path.append("../FinRL-Library")import os
from finrl.main import check_and_make_directories
from finrl.config import (
DATA_SAVE_DIR,
TRAINED_MODEL_DIR,
TENSORBOARD_LOG_DIR,
RESULTS_DIR,
INDICATORS,
TRAIN_START_DATE,
TRAIN_END_DATE,
TEST_START_DATE,
TEST_END_DATE,
TRADE_START_DATE,
TRADE_END_DATE,
)
check_and_make_directories([DATA_SAVE_DIR, TRAINED_MODEL_DIR, TENSORBOARD_LOG_DIR, RESULTS_DIR])df= pd.read_csv("sp500_stocks.csv")
df.head()| Date | Symbol | Adj Close | Close | High | Low | Open | Volume | |
|---|---|---|---|---|---|---|---|---|
| 0 | 2010-01-04 | MMM | 44.254017 | 69.414719 | 69.774246 | 69.122070 | 69.473244 | 3640265.0 |
| 1 | 2010-01-05 | MMM | 43.976837 | 68.979935 | 69.590302 | 68.311035 | 69.230766 | 3405012.0 |
| 2 | 2010-01-06 | MMM | 44.600502 | 69.958191 | 70.735786 | 69.824417 | 70.133781 | 6301126.0 |
| 3 | 2010-01-07 | MMM | 44.632484 | 70.008362 | 70.033447 | 68.662209 | 69.665550 | 5346240.0 |
| 4 | 2010-01-08 | MMM | 44.946964 | 70.501671 | 70.501671 | 69.648827 | 69.974915 | 4073337.0 |
# Rename specific columns to lowercase
df.rename(columns={'Symbol': 'tic','Date': 'date','Volume': 'volume', 'Close': 'close', 'Adj Close': 'adj_close', 'High': 'high', 'Low': 'low', 'Open': 'open'}, inplace=True)
# Optional: Verify the change
print(df.columns)Index(['date', 'tic', 'adj_close', 'close', 'high', 'low', 'open', 'volume'], dtype='object')
df.sort_values(['date','tic'],ignore_index=True).head()| date | tic | adj_close | close | high | low | open | volume | |
|---|---|---|---|---|---|---|---|---|
| 0 | 2010-01-04 | A | 20.084951 | 22.389128 | 22.625179 | 22.267525 | 22.453505 | 3815561.0 |
| 1 | 2010-01-04 | AAL | 4.496878 | 4.770000 | 4.940000 | 4.660000 | 4.840000 | 9837300.0 |
| 2 | 2010-01-04 | AAPL | 6.454506 | 7.643214 | 7.660714 | 7.585000 | 7.622500 | 493729600.0 |
| 3 | 2010-01-04 | ABBV | NaN | NaN | NaN | NaN | NaN | NaN |
| 4 | 2010-01-04 | ABNB | NaN | NaN | NaN | NaN | NaN | NaN |
df.info()<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1852046 entries, 0 to 1852045
Data columns (total 8 columns):
# Column Dtype
--- ------ -----
0 date object
1 tic object
2 adj_close float64
3 close float64
4 high float64
5 low float64
6 open float64
7 volume float64
dtypes: float64(6), object(2)
memory usage: 113.0+ MB
df.tail()| date | tic | adj_close | close | high | low | open | volume | |
|---|---|---|---|---|---|---|---|---|
| 1852041 | 2024-08-14 | ZTS | 183.380005 | 183.380005 | 188.500000 | 182.490005 | 188.050003 | 2153100.0 |
| 1852042 | 2024-08-15 | ZTS | 184.080002 | 184.080002 | 186.169998 | 182.710007 | 184.520004 | 1891900.0 |
| 1852043 | 2024-08-16 | ZTS | 183.710007 | 183.710007 | 184.610001 | 182.250000 | 183.720001 | 1588400.0 |
| 1852044 | 2024-08-19 | ZTS | 184.479996 | 184.479996 | 184.520004 | 182.559998 | 183.800003 | 1637000.0 |
| 1852045 | 2024-08-20 | ZTS | 183.600006 | 183.600006 | 184.759995 | 182.900101 | 184.479996 | 1186374.0 |
from pathlib import Path
from ydata_profiling import ProfileReport
from ydata_profiling.utils.cache import cache_file
if __name__ == "__main__":
file_name = "/content/drive/MyDrive/Assets/sp500_stocks.csv"
sp500 = pd.read_csv(file_name)
profile = ProfileReport(sp500, title="S&P 500 Stocks", explorative=True)
profile.to_file(Path("sp500_stocks_report.html")){"model_id":"c4f31b8d49c24705bf929cae8995e341","version_major":2,"version_minor":0}{"model_id":"afe3efa3d19e4e26aab5c202e2fa5d35","version_major":2,"version_minor":0}{"model_id":"3f879989622e40d3912233212e08dcd0","version_major":2,"version_minor":0}{"model_id":"0dc6f78aab5e43dba7b9d149f3ce0209","version_major":2,"version_minor":0}profile
unique_tickers = df['tic'].unique()
random_tickers = pd.Series(unique_tickers).sample(n=30, random_state=42)
print(random_tickers)268 JCI
73 BMY
289 LEN
155 DOV
104 CVX
280 KLAC
392 DGX
124 STZ
68 BX
244 HII
9 A
195 FIS
304 MMC
84 CPB
373 PM
390 PWR
498 XYL
30 AWK
317 MGM
407 RCL
493 WY
494 WMB
225 HIG
227 HCA
76 BRO
464 URI
473 VRTX
402 RVTY
101 CRL
335 NTAP
dtype: object
filtered_df = df[df['tic'].isin(random_tickers)]
print(filtered_df) date tic adj_close close high low \
33138 2010-01-04 A 20.084951 22.389128 22.625179 22.267525
33139 2010-01-05 A 19.866777 22.145924 22.331903 22.002861
33140 2010-01-06 A 19.796186 22.067240 22.174536 22.002861
33141 2010-01-07 A 19.770527 22.038628 22.045780 21.816881
33142 2010-01-08 A 19.764101 22.031473 22.067240 21.745352
... ... ... ... ... ... ...
1837313 2024-08-14 XYL 131.490005 131.490005 132.229996 130.580002
1837314 2024-08-15 XYL 133.190002 133.190002 134.270004 131.779999
1837315 2024-08-16 XYL 132.800003 132.800003 133.630005 131.970001
1837316 2024-08-19 XYL 134.380005 134.380005 134.380005 132.580002
1837317 2024-08-20 XYL 134.149994 134.149994 135.600006 133.199997
open volume
33138 22.453505 3815561.0
33139 22.324751 4186031.0
33140 22.067240 3243779.0
33141 22.017166 3095172.0
33142 21.917025 3733918.0
... ... ...
1837313 131.720001 813400.0
1837314 132.949997 739000.0
1837315 133.000000 1956500.0
1837316 133.039993 751200.0
1837317 134.399994 761699.0
[110460 rows x 8 columns]
filtered_df.info()<class 'pandas.core.frame.DataFrame'>
Index: 110460 entries, 33138 to 1837317
Data columns (total 8 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 date 110460 non-null object
1 tic 110460 non-null object
2 adj_close 109407 non-null float64
3 close 109407 non-null float64
4 high 109407 non-null float64
5 low 109407 non-null float64
6 open 109407 non-null float64
7 volume 109407 non-null float64
dtypes: float64(6), object(2)
memory usage: 7.6+ MB
df.columnsIndex(['date', 'tic', 'adj_close', 'close', 'high', 'low', 'open', 'volume'], dtype='object')
INDICATORS=['macd',
'boll_ub',
'boll_lb',
'rsi_30',
'cci_30',
'dx_30',
'close_30_sma',
'close_60_sma']TRAIN_START_DATE = '2010-01-04'
TRAIN_END_DATE = '2021-06-01'
TEST_START_DATE = '2022-01-01'
TEST_END_DATE = '2024-08-20'
fe = FeatureEngineer(
use_technical_indicator=True,
tech_indicator_list=INDICATORS,
use_turbulence=True,
user_defined_feature=False
)
processed = fe.preprocess_data(filtered_df)Successfully added technical indicators
Successfully added turbulence index
train_data = processed[(processed['date'] >= TRAIN_START_DATE) & (processed['date'] <= TRAIN_END_DATE)]
test_data = processed[(processed['date'] >= TEST_START_DATE) & (processed['date'] <= TEST_END_DATE)]
train_data.reset_index(drop=True, inplace=True)
test_data.reset_index(drop=True, inplace=True)
print("Training data shape:", train_data.shape)
print("Testing data shape:", test_data.shape)
print("Processed data head:")
print(processed.head())Training data shape: (77544, 17)
Testing data shape: (17847, 17)
Processed data head:
date tic adj_close close high low open \
0 2010-01-04 A 20.084951 22.389128 22.625179 22.267525 22.453505
1 2010-01-04 AWK 16.174004 22.650000 22.860001 22.410000 22.410000
2 2010-01-04 BMY 15.781889 25.629999 25.700001 25.299999 25.410000
3 2010-01-04 BRO 7.635339 9.005000 9.045000 8.930000 9.025000
4 2010-01-04 BX 6.540053 13.710000 13.750000 13.150000 13.250000
volume macd boll_ub boll_lb rsi_30 cci_30 dx_30 \
0 3815561.0 0.0 22.611468 21.923583 0.0 -66.666667 100.0
1 2176100.0 0.0 22.611468 21.923583 0.0 -66.666667 100.0
2 14376100.0 0.0 22.611468 21.923583 0.0 -66.666667 100.0
3 1437600.0 0.0 22.611468 21.923583 0.0 -66.666667 100.0
4 3862700.0 0.0 22.611468 21.923583 0.0 -66.666667 100.0
close_30_sma close_60_sma turbulence
0 22.389128 22.389128 0.0
1 22.650000 22.650000 0.0
2 25.629999 25.629999 0.0
3 9.005000 9.005000 0.0
4 13.710000 13.710000 0.0
print(processed.info())
print(processed.columns)<class 'pandas.core.frame.DataFrame'>
RangeIndex: 99414 entries, 0 to 99413
Data columns (total 17 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 date 99414 non-null object
1 tic 99414 non-null object
2 adj_close 99414 non-null float64
3 close 99414 non-null float64
4 high 99414 non-null float64
5 low 99414 non-null float64
6 open 99414 non-null float64
7 volume 99414 non-null float64
8 macd 99414 non-null float64
9 boll_ub 99414 non-null float64
10 boll_lb 99414 non-null float64
11 rsi_30 99414 non-null float64
12 cci_30 99414 non-null float64
13 dx_30 99414 non-null float64
14 close_30_sma 99414 non-null float64
15 close_60_sma 99414 non-null float64
16 turbulence 99414 non-null float64
dtypes: float64(15), object(2)
memory usage: 12.9+ MB
None
Index(['date', 'tic', 'adj_close', 'close', 'high', 'low', 'open', 'volume',
'macd', 'boll_ub', 'boll_lb', 'rsi_30', 'cci_30', 'dx_30',
'close_30_sma', 'close_60_sma', 'turbulence'],
dtype='object')
stock_dimension = len(processed.tic.unique())
state_space = 1 + 2*stock_dimension + len(INDICATORS)*stock_dimension
print(f"Stock Dimension: {stock_dimension}, State Space: {state_space}")Stock Dimension: 27, State Space: 271
env_kwargs = {
"hmax": 100,
"initial_amount": 10000000,
"buy_cost_pct": 0.001,
"sell_cost_pct": 0.001,
"state_space": state_space,
"stock_dim": stock_dimension,
"tech_indicator_list": INDICATORS,
"action_space": stock_dimension,
"reward_scaling": 1e-4,
"print_verbosity":5
}rebalance_window = 20 # rebalance_window is the number of days to retrain the model
validation_window = 20 # validation_window is the number of days to do validation and trading (e.g. if validation_window=63, then both validation and trading period will be 63 days)
ensemble_agent = DRLEnsembleAgent(df=processed,
train_period=(TRAIN_START_DATE,TRAIN_END_DATE),
val_test_period=(TEST_START_DATE,TEST_END_DATE),
rebalance_window=rebalance_window,
validation_window=validation_window,
**env_kwargs)ensemble_agent<finrl.agents.stablebaselines3.models.DRLEnsembleAgent at 0x7f1b367bfe50>
A2C_model_kwargs = {
'n_steps': 5, # Number of steps to run for each environment before updating
'ent_coef': 0.005, # Entropy coefficient for exploration
'learning_rate': 0.0007, # Learning rate for the agent
}PPO_model_kwargs = {
"ent_coef": 0.01, # Entropy coefficient to ensure exploration
"n_steps": 2048, # Number of steps per environment update
"learning_rate": 0.00025, # Learning rate for the optimizer
"batch_size": 128, # Batch size for each training step
}SAC_model_kwargs = {
"buffer_size": 10_00, # Size of the replay buffer
"learning_rate": 0.0003, # Learning rate for SAC agent
"batch_size": 256, # Batch size for the optimizer
"ent_coef": 'auto', # Entropy coefficient (auto-tuned by default)
}timesteps_dict = {
'a2c': 5_00, # A2C agent timesteps
'ppo': 5_00, # PPO agent timesteps
'sac': 5_00 # SAC agent timesteps
}from tqdm import tqdm
# Define the model kwargs and timesteps for the ensemble strategy
model_kwargs_dict = {
'A2C': A2C_model_kwargs,
'PPO': PPO_model_kwargs,
'SAC': SAC_model_kwargs
}
# Use tqdm to track the progress of model training
ensemble_models_summary = {}
# Added total=len(model_kwargs_dict) to tqdm to indicate 5 models are being trained
for model_name in tqdm(model_kwargs_dict, desc="Training Ensemble Models", total=len(model_kwargs_dict)):
print(f"\nRunning {model_name}...")
# Simulate some progress or steps within each model training
# For actual models, it may take time
ensemble_models_summary[model_name] = ensemble_agent.run_ensemble_strategy(
A2C_model_kwargs=A2C_model_kwargs,
PPO_model_kwargs=PPO_model_kwargs,
SAC_model_kwargs=SAC_model_kwargs,
DDPG_model_kwargs=None,
TD3_model_kwargs=None,
timesteps_dict=timesteps_dict
)
# Print after each model is trained
print(f"{model_name} training completed!")Training Ensemble Models: 0%| | 0/3 [00:00<?, ?it/s]
Running A2C...
============Start Ensemble Strategy============
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-01-03
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_40_9
-------------------------------------
| time/ | |
| fps | 147 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -290 |
| reward | 1.7664002 |
| std | 1 |
| value_loss | 90.1 |
-------------------------------------
======a2c Validation from: 2022-01-03 to 2022-02-01
a2c Sharpe Ratio: -0.4239222070975703
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_40_8
======sac Validation from: 2022-01-03 to 2022-02-01
sac Sharpe Ratio: -0.1606888934303123
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_40_8
------------------------------------
| time/ | |
| fps | 175 |
| iterations | 1 |
| time_elapsed | 11 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.28363752 |
------------------------------------
======ppo Validation from: 2022-01-03 to 2022-02-01
ppo Sharpe Ratio: -0.27343880394015974
======Best Model Retraining from: 2010-01-04 to 2022-02-01
======Trading from: 2022-02-01 to 2022-03-02
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-02-01
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_60_7
-------------------------------------
| time/ | |
| fps | 146 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.6 |
| explained_variance | -1.19e-07 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -532 |
| reward | 2.048322 |
| std | 1.01 |
| value_loss | 244 |
-------------------------------------
======a2c Validation from: 2022-02-01 to 2022-03-02
a2c Sharpe Ratio: -0.4533450444127557
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_60_7
======sac Validation from: 2022-02-01 to 2022-03-02
sac Sharpe Ratio: -0.4543244152324558
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_60_7
------------------------------------
| time/ | |
| fps | 173 |
| iterations | 1 |
| time_elapsed | 11 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.17826746 |
------------------------------------
======ppo Validation from: 2022-02-01 to 2022-03-02
ppo Sharpe Ratio: -0.6577181389067889
======Best Model Retraining from: 2010-01-04 to 2022-03-02
======Trading from: 2022-03-02 to 2022-03-30
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-03-02
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_80_7
-------------------------------------
| time/ | |
| fps | 152 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.1 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -154 |
| reward | 1.1114376 |
| std | 0.991 |
| value_loss | 29.1 |
-------------------------------------
======a2c Validation from: 2022-03-02 to 2022-03-30
a2c Sharpe Ratio: 0.8648916178541377
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_80_7
======sac Validation from: 2022-03-02 to 2022-03-30
sac Sharpe Ratio: 0.9277441563223704
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_80_7
---------------------------------
| time/ | |
| fps | 172 |
| iterations | 1 |
| time_elapsed | 11 |
| total_timesteps | 2048 |
| train/ | |
| reward | 2.566823 |
---------------------------------
======ppo Validation from: 2022-03-02 to 2022-03-30
ppo Sharpe Ratio: 0.684604772329929
======Best Model Retraining from: 2010-01-04 to 2022-03-30
======Trading from: 2022-03-30 to 2022-04-28
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-03-30
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_100_7
-------------------------------------
| time/ | |
| fps | 148 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -21 |
| reward | 0.8680809 |
| std | 1 |
| value_loss | 2.42 |
-------------------------------------
======a2c Validation from: 2022-03-30 to 2022-04-28
a2c Sharpe Ratio: -0.3425299661742234
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_100_7
======sac Validation from: 2022-03-30 to 2022-04-28
sac Sharpe Ratio: -0.5635180096624839
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_100_7
-----------------------------------
| time/ | |
| fps | 173 |
| iterations | 1 |
| time_elapsed | 11 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.14253771 |
-----------------------------------
======ppo Validation from: 2022-03-30 to 2022-04-28
ppo Sharpe Ratio: -0.49071243438413437
======Best Model Retraining from: 2010-01-04 to 2022-04-28
======Trading from: 2022-04-28 to 2022-05-26
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-04-28
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_120_7
-------------------------------------
| time/ | |
| fps | 147 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 5.96e-08 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | 186 |
| reward | 1.4454784 |
| std | 1 |
| value_loss | 50.7 |
-------------------------------------
======a2c Validation from: 2022-04-28 to 2022-05-26
a2c Sharpe Ratio: 0.5194515329221369
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_120_7
======sac Validation from: 2022-04-28 to 2022-05-26
sac Sharpe Ratio: 0.1860952923312625
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_120_7
------------------------------------
| time/ | |
| fps | 169 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.024773166 |
------------------------------------
======ppo Validation from: 2022-04-28 to 2022-05-26
ppo Sharpe Ratio: 0.15358212504806343
======Best Model Retraining from: 2010-01-04 to 2022-05-26
======Trading from: 2022-05-26 to 2022-06-27
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-05-26
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_140_7
-------------------------------------
| time/ | |
| fps | 140 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -87.3 |
| reward | 0.9521253 |
| std | 1.01 |
| value_loss | 8.55 |
-------------------------------------
======a2c Validation from: 2022-05-26 to 2022-06-27
a2c Sharpe Ratio: -0.26014663912226876
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_140_7
======sac Validation from: 2022-05-26 to 2022-06-27
sac Sharpe Ratio: -0.09183467292197314
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_140_7
-----------------------------------
| time/ | |
| fps | 170 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | -1.1395988 |
-----------------------------------
======ppo Validation from: 2022-05-26 to 2022-06-27
ppo Sharpe Ratio: -0.22271236672187847
======Best Model Retraining from: 2010-01-04 to 2022-06-27
======Trading from: 2022-06-27 to 2022-07-26
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-06-27
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_160_7
-------------------------------------
| time/ | |
| fps | 153 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 1.19e-07 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | 14.3 |
| reward | 1.6082815 |
| std | 1 |
| value_loss | 37.7 |
-------------------------------------
======a2c Validation from: 2022-06-27 to 2022-07-26
a2c Sharpe Ratio: 0.3328580326672359
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_160_7
======sac Validation from: 2022-06-27 to 2022-07-26
sac Sharpe Ratio: 0.46171859260682646
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_160_7
----------------------------------
| time/ | |
| fps | 166 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | 1.0996473 |
----------------------------------
======ppo Validation from: 2022-06-27 to 2022-07-26
ppo Sharpe Ratio: 0.2586519091388897
======Best Model Retraining from: 2010-01-04 to 2022-07-26
======Trading from: 2022-07-26 to 2022-08-23
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-07-26
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_180_7
--------------------------------------
| time/ | |
| fps | 153 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -474 |
| reward | 0.76817995 |
| std | 1 |
| value_loss | 180 |
--------------------------------------
======a2c Validation from: 2022-07-26 to 2022-08-23
a2c Sharpe Ratio: -0.26217104991640383
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_180_7
======sac Validation from: 2022-07-26 to 2022-08-23
sac Sharpe Ratio: -0.2559058029588138
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_180_7
-------------------------------------
| time/ | |
| fps | 165 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.068954915 |
-------------------------------------
======ppo Validation from: 2022-07-26 to 2022-08-23
ppo Sharpe Ratio: -0.2911393739334291
======Best Model Retraining from: 2010-01-04 to 2022-08-23
======Trading from: 2022-08-23 to 2022-09-21
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-08-23
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_200_7
-------------------------------------
| time/ | |
| fps | 153 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.5 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -90.9 |
| reward | 2.1152883 |
| std | 1.01 |
| value_loss | 47.2 |
-------------------------------------
======a2c Validation from: 2022-08-23 to 2022-09-21
a2c Sharpe Ratio: -0.37293292596203065
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_200_7
======sac Validation from: 2022-08-23 to 2022-09-21
sac Sharpe Ratio: -0.4922653739819897
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_200_7
-----------------------------------
| time/ | |
| fps | 165 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.20924889 |
-----------------------------------
======ppo Validation from: 2022-08-23 to 2022-09-21
ppo Sharpe Ratio: -0.3609532389192027
======Best Model Retraining from: 2010-01-04 to 2022-09-21
======Trading from: 2022-09-21 to 2022-10-19
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-09-21
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_220_7
--------------------------------------
| time/ | |
| fps | 147 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -209 |
| reward | 0.10164115 |
| std | 1 |
| value_loss | 47.3 |
--------------------------------------
======a2c Validation from: 2022-09-21 to 2022-10-19
a2c Sharpe Ratio: 0.2093176078995755
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_220_7
======sac Validation from: 2022-09-21 to 2022-10-19
sac Sharpe Ratio: 0.3147633456698607
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_220_7
-----------------------------------
| time/ | |
| fps | 162 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.04104819 |
-----------------------------------
======ppo Validation from: 2022-09-21 to 2022-10-19
ppo Sharpe Ratio: 0.2618679219900995
======Best Model Retraining from: 2010-01-04 to 2022-10-19
======Trading from: 2022-10-19 to 2022-11-16
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-10-19
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_240_7
-------------------------------------
| time/ | |
| fps | 145 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.2 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -245 |
| reward | 1.3768109 |
| std | 0.995 |
| value_loss | 45 |
-------------------------------------
======a2c Validation from: 2022-10-19 to 2022-11-16
a2c Sharpe Ratio: 0.7555741924097998
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_240_7
======sac Validation from: 2022-10-19 to 2022-11-16
sac Sharpe Ratio: 0.6426211221766183
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_240_7
----------------------------------
| time/ | |
| fps | 166 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | 2.5161564 |
----------------------------------
======ppo Validation from: 2022-10-19 to 2022-11-16
ppo Sharpe Ratio: 0.5068425130039071
======Best Model Retraining from: 2010-01-04 to 2022-11-16
======Trading from: 2022-11-16 to 2022-12-15
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-11-16
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_260_7
-------------------------------------
| time/ | |
| fps | 146 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -352 |
| reward | 3.1386695 |
| std | 1 |
| value_loss | 134 |
-------------------------------------
======a2c Validation from: 2022-11-16 to 2022-12-15
a2c Sharpe Ratio: 0.01686659361619277
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_260_7
======sac Validation from: 2022-11-16 to 2022-12-15
sac Sharpe Ratio: 0.15765846442700004
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_260_7
---------------------------------
| time/ | |
| fps | 165 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.633922 |
---------------------------------
======ppo Validation from: 2022-11-16 to 2022-12-15
ppo Sharpe Ratio: -0.10177756562463378
======Best Model Retraining from: 2010-01-04 to 2022-12-15
======Trading from: 2022-12-15 to 2023-01-17
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-12-15
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_280_7
-------------------------------------
| time/ | |
| fps | 145 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -126 |
| reward | 0.7477155 |
| std | 1 |
| value_loss | 14.7 |
-------------------------------------
======a2c Validation from: 2022-12-15 to 2023-01-17
a2c Sharpe Ratio: 0.4912245736256434
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_280_7
======sac Validation from: 2022-12-15 to 2023-01-17
sac Sharpe Ratio: 0.627456190033443
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_280_7
---------------------------------
| time/ | |
| fps | 164 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | 1.141664 |
---------------------------------
======ppo Validation from: 2022-12-15 to 2023-01-17
ppo Sharpe Ratio: 0.4981771840299969
======Best Model Retraining from: 2010-01-04 to 2023-01-17
======Trading from: 2023-01-17 to 2023-02-14
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-01-17
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_300_7
------------------------------------
| time/ | |
| fps | 148 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -83.5 |
| reward | 2.626683 |
| std | 1 |
| value_loss | 21.8 |
------------------------------------
======a2c Validation from: 2023-01-17 to 2023-02-14
a2c Sharpe Ratio: 0.36399871041373366
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_300_7
======sac Validation from: 2023-01-17 to 2023-02-14
sac Sharpe Ratio: -0.09887854975106665
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_300_7
----------------------------------
| time/ | |
| fps | 162 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.6997812 |
----------------------------------
======ppo Validation from: 2023-01-17 to 2023-02-14
ppo Sharpe Ratio: 0.2660080810727043
======Best Model Retraining from: 2010-01-04 to 2023-02-14
======Trading from: 2023-02-14 to 2023-03-15
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-02-14
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_320_7
------------------------------------
| time/ | |
| fps | 148 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0.00637 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -473 |
| reward | 3.086805 |
| std | 1.01 |
| value_loss | 212 |
------------------------------------
======a2c Validation from: 2023-02-14 to 2023-03-15
a2c Sharpe Ratio: -0.3796393999510418
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_320_7
======sac Validation from: 2023-02-14 to 2023-03-15
sac Sharpe Ratio: -0.619906377330429
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_320_7
-----------------------------------
| time/ | |
| fps | 157 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.1296025 |
-----------------------------------
======ppo Validation from: 2023-02-14 to 2023-03-15
ppo Sharpe Ratio: -0.3550101821831933
======Best Model Retraining from: 2010-01-04 to 2023-03-15
======Trading from: 2023-03-15 to 2023-04-13
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-03-15
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_340_7
-------------------------------------
| time/ | |
| fps | 143 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0.0232 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -234 |
| reward | 3.4686148 |
| std | 1 |
| value_loss | 57.7 |
-------------------------------------
======a2c Validation from: 2023-03-15 to 2023-04-13
a2c Sharpe Ratio: 0.45873894373480495
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_340_7
======sac Validation from: 2023-03-15 to 2023-04-13
sac Sharpe Ratio: 0.5806979351334597
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_340_7
----------------------------------
| time/ | |
| fps | 154 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | 2.4719942 |
----------------------------------
======ppo Validation from: 2023-03-15 to 2023-04-13
ppo Sharpe Ratio: 0.4381650526977873
======Best Model Retraining from: 2010-01-04 to 2023-04-13
======Trading from: 2023-04-13 to 2023-05-11
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-04-13
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_360_7
-------------------------------------
| time/ | |
| fps | 140 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.2 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -365 |
| reward | 4.0066724 |
| std | 0.997 |
| value_loss | 165 |
-------------------------------------
======a2c Validation from: 2023-04-13 to 2023-05-11
a2c Sharpe Ratio: -0.15901927878576932
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_360_7
======sac Validation from: 2023-04-13 to 2023-05-11
sac Sharpe Ratio: 0.019134122911645665
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_360_7
----------------------------------
| time/ | |
| fps | 155 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.8010855 |
----------------------------------
======ppo Validation from: 2023-04-13 to 2023-05-11
ppo Sharpe Ratio: -0.060664593441836466
======Best Model Retraining from: 2010-01-04 to 2023-05-11
======Trading from: 2023-05-11 to 2023-06-09
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-05-11
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_380_7
------------------------------------
| time/ | |
| fps | 140 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.2 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | 39.1 |
| reward | 1.858794 |
| std | 0.996 |
| value_loss | 15.2 |
------------------------------------
======a2c Validation from: 2023-05-11 to 2023-06-09
a2c Sharpe Ratio: 0.5703810054201461
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_380_7
======sac Validation from: 2023-05-11 to 2023-06-09
sac Sharpe Ratio: 0.13697371852414045
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_380_7
----------------------------------
| time/ | |
| fps | 156 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.3671338 |
----------------------------------
======ppo Validation from: 2023-05-11 to 2023-06-09
ppo Sharpe Ratio: 0.6009048579495265
======Best Model Retraining from: 2010-01-04 to 2023-06-09
======Trading from: 2023-06-09 to 2023-07-11
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-06-09
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_400_7
------------------------------------
| time/ | |
| fps | 141 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | -0.0358 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -285 |
| reward | 4.796846 |
| std | 1 |
| value_loss | 148 |
------------------------------------
======a2c Validation from: 2023-06-09 to 2023-07-11
a2c Sharpe Ratio: 0.5131678125436792
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_400_7
======sac Validation from: 2023-06-09 to 2023-07-11
sac Sharpe Ratio: 0.20508076242241602
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_400_7
-----------------------------------
| time/ | |
| fps | 159 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | -2.6267786 |
-----------------------------------
======ppo Validation from: 2023-06-09 to 2023-07-11
ppo Sharpe Ratio: 0.3232017709752568
======Best Model Retraining from: 2010-01-04 to 2023-07-11
======Trading from: 2023-07-11 to 2023-08-08
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-07-11
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_420_7
------------------------------------
| time/ | |
| fps | 144 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0.0143 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -534 |
| reward | 1.585778 |
| std | 0.999 |
| value_loss | 236 |
------------------------------------
======a2c Validation from: 2023-07-11 to 2023-08-08
a2c Sharpe Ratio: -0.16195739140870916
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_420_7
======sac Validation from: 2023-07-11 to 2023-08-08
sac Sharpe Ratio: 0.005009480435611331
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_420_7
------------------------------------
| time/ | |
| fps | 157 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.040767707 |
------------------------------------
======ppo Validation from: 2023-07-11 to 2023-08-08
ppo Sharpe Ratio: -0.11839774912620346
======Best Model Retraining from: 2010-01-04 to 2023-08-08
======Trading from: 2023-08-08 to 2023-09-06
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-08-08
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_440_7
-------------------------------------
| time/ | |
| fps | 141 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 1.19e-07 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | 55.3 |
| reward | 1.1025249 |
| std | 1 |
| value_loss | 7 |
-------------------------------------
======a2c Validation from: 2023-08-08 to 2023-09-06
a2c Sharpe Ratio: -0.11093483019727261
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_440_7
======sac Validation from: 2023-08-08 to 2023-09-06
sac Sharpe Ratio: -0.14747129236026188
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_440_7
------------------------------------
| time/ | |
| fps | 151 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.26759928 |
------------------------------------
======ppo Validation from: 2023-08-08 to 2023-09-06
ppo Sharpe Ratio: 0.014180258412877065
======Best Model Retraining from: 2010-01-04 to 2023-09-06
======Trading from: 2023-09-06 to 2023-10-04
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-09-06
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_460_7
-------------------------------------
| time/ | |
| fps | 143 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.5 |
| explained_variance | 1.19e-07 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -488 |
| reward | 1.2504898 |
| std | 1.01 |
| value_loss | 172 |
-------------------------------------
======a2c Validation from: 2023-09-06 to 2023-10-04
a2c Sharpe Ratio: -0.9617620972345442
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_460_7
======sac Validation from: 2023-09-06 to 2023-10-04
sac Sharpe Ratio: -0.9920687802922873
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_460_7
-----------------------------------
| time/ | |
| fps | 155 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.24773361 |
-----------------------------------
======ppo Validation from: 2023-09-06 to 2023-10-04
ppo Sharpe Ratio: -1.3319017054272
======Best Model Retraining from: 2010-01-04 to 2023-10-04
======Trading from: 2023-10-04 to 2023-11-01
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-10-04
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_480_7
--------------------------------------
| time/ | |
| fps | 138 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -40.6 |
| reward | 0.92286885 |
| std | 0.999 |
| value_loss | 5.15 |
--------------------------------------
======a2c Validation from: 2023-10-04 to 2023-11-01
a2c Sharpe Ratio: -0.5450368167071131
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_480_7
======sac Validation from: 2023-10-04 to 2023-11-01
sac Sharpe Ratio: -0.5169561975138348
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_480_7
------------------------------------
| time/ | |
| fps | 154 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.74272066 |
------------------------------------
======ppo Validation from: 2023-10-04 to 2023-11-01
ppo Sharpe Ratio: -0.5322698826914314
======Best Model Retraining from: 2010-01-04 to 2023-11-01
======Trading from: 2023-11-01 to 2023-11-30
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-11-01
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_500_7
-------------------------------------
| time/ | |
| fps | 138 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | 204 |
| reward | 2.8629305 |
| std | 1 |
| value_loss | 70.7 |
-------------------------------------
======a2c Validation from: 2023-11-01 to 2023-11-30
a2c Sharpe Ratio: -0.037628394170374065
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_500_7
======sac Validation from: 2023-11-01 to 2023-11-30
sac Sharpe Ratio: 0.7063754540866066
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_500_7
-----------------------------------
| time/ | |
| fps | 152 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.13059996 |
-----------------------------------
======ppo Validation from: 2023-11-01 to 2023-11-30
ppo Sharpe Ratio: 0.7216389643811085
======Best Model Retraining from: 2010-01-04 to 2023-11-30
======Trading from: 2023-11-30 to 2023-12-29
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-11-30
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_520_7
-------------------------------------
| time/ | |
| fps | 139 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | 14.3 |
| reward | 1.9093802 |
| std | 0.999 |
| value_loss | 13.2 |
-------------------------------------
======a2c Validation from: 2023-11-30 to 2023-12-29
a2c Sharpe Ratio: 0.7654289259827723
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_520_7
======sac Validation from: 2023-11-30 to 2023-12-29
sac Sharpe Ratio: 0.6974681233349738
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_520_7
------------------------------------
| time/ | |
| fps | 155 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.37526974 |
------------------------------------
======ppo Validation from: 2023-11-30 to 2023-12-29
ppo Sharpe Ratio: 0.8509388575995951
======Best Model Retraining from: 2010-01-04 to 2023-12-29
======Trading from: 2023-12-29 to 2024-01-30
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-12-29
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_540_7
------------------------------------
| time/ | |
| fps | 135 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.5 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -215 |
| reward | 3.003827 |
| std | 1.01 |
| value_loss | 48.7 |
------------------------------------
======a2c Validation from: 2023-12-29 to 2024-01-30
a2c Sharpe Ratio: 0.040377688057555844
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_540_7
======sac Validation from: 2023-12-29 to 2024-01-30
sac Sharpe Ratio: 0.40917601883220134
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_540_7
----------------------------------
| time/ | |
| fps | 155 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.4627169 |
----------------------------------
======ppo Validation from: 2023-12-29 to 2024-01-30
ppo Sharpe Ratio: -0.18946854194936086
======Best Model Retraining from: 2010-01-04 to 2024-01-30
======Trading from: 2024-01-30 to 2024-02-28
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2024-01-30
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_560_7
------------------------------------
| time/ | |
| fps | 143 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.5 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -229 |
| reward | 2.918898 |
| std | 1.01 |
| value_loss | 57 |
------------------------------------
======a2c Validation from: 2024-01-30 to 2024-02-28
a2c Sharpe Ratio: 0.6401600913766964
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_560_7
======sac Validation from: 2024-01-30 to 2024-02-28
sac Sharpe Ratio: 0.34898654112195365
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_560_7
-----------------------------------
| time/ | |
| fps | 153 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -2.4348567 |
-----------------------------------
======ppo Validation from: 2024-01-30 to 2024-02-28
ppo Sharpe Ratio: 0.5888472559134432
======Best Model Retraining from: 2010-01-04 to 2024-02-28
======Trading from: 2024-02-28 to 2024-03-27
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2024-02-28
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_580_7
-------------------------------------
| time/ | |
| fps | 135 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -142 |
| reward | 0.3309329 |
| std | 0.999 |
| value_loss | 24.9 |
-------------------------------------
======a2c Validation from: 2024-02-28 to 2024-03-27
a2c Sharpe Ratio: 0.4144006011626133
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_580_7
======sac Validation from: 2024-02-28 to 2024-03-27
sac Sharpe Ratio: 0.22567327218581357
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_580_7
-----------------------------------
| time/ | |
| fps | 153 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -1.0620995 |
-----------------------------------
======ppo Validation from: 2024-02-28 to 2024-03-27
ppo Sharpe Ratio: 0.2065856355793313
======Best Model Retraining from: 2010-01-04 to 2024-03-27
======Trading from: 2024-03-27 to 2024-04-25
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2024-03-27
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_600_7
-------------------------------------
| time/ | |
| fps | 140 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0.0941 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -329 |
| reward | 3.5824735 |
| std | 0.999 |
| value_loss | 127 |
-------------------------------------
======a2c Validation from: 2024-03-27 to 2024-04-25
a2c Sharpe Ratio: -0.2878797139359455
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_600_7
======sac Validation from: 2024-03-27 to 2024-04-25
sac Sharpe Ratio: -0.28118262424269425
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_600_7
-----------------------------------
| time/ | |
| fps | 151 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.55891114 |
-----------------------------------
======ppo Validation from: 2024-03-27 to 2024-04-25
ppo Sharpe Ratio: -0.2410078034889812
======Best Model Retraining from: 2010-01-04 to 2024-04-25
======Trading from: 2024-04-25 to 2024-05-23
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2024-04-25
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_620_7
-------------------------------------
| time/ | |
| fps | 135 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.2 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -395 |
| reward | 3.5012217 |
| std | 0.996 |
| value_loss | 131 |
-------------------------------------
======a2c Validation from: 2024-04-25 to 2024-05-23
a2c Sharpe Ratio: 0.7247563826923544
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_620_7
======sac Validation from: 2024-04-25 to 2024-05-23
sac Sharpe Ratio: 0.24071162817676037
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_620_7
-----------------------------------
| time/ | |
| fps | 143 |
| iterations | 1 |
| time_elapsed | 14 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.49886173 |
-----------------------------------
======ppo Validation from: 2024-04-25 to 2024-05-23
ppo Sharpe Ratio: 0.49763862639176365
======Best Model Retraining from: 2010-01-04 to 2024-05-23
======Trading from: 2024-05-23 to 2024-06-24
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2024-05-23
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_640_7
-------------------------------------
| time/ | |
| fps | 132 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | -1.19e-07 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -36.6 |
| reward | 0.2621175 |
| std | 1 |
| value_loss | 2.04 |
-------------------------------------
======a2c Validation from: 2024-05-23 to 2024-06-24
a2c Sharpe Ratio: 0.07214798831738484
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_640_7
======sac Validation from: 2024-05-23 to 2024-06-24
sac Sharpe Ratio: 0.5573855349708101
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_640_7
----------------------------------
| time/ | |
| fps | 151 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.7304851 |
----------------------------------
======ppo Validation from: 2024-05-23 to 2024-06-24
ppo Sharpe Ratio: 0.15259621904021836
======Best Model Retraining from: 2010-01-04 to 2024-06-24
======Trading from: 2024-06-24 to 2024-07-23
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2024-06-24
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_660_7
------------------------------------
| time/ | |
| fps | 140 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -283 |
| reward | 4.014628 |
| std | 1 |
| value_loss | 69.1 |
------------------------------------
======a2c Validation from: 2024-06-24 to 2024-07-23
a2c Sharpe Ratio: 0.4225245179659611
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_660_7
======sac Validation from: 2024-06-24 to 2024-07-23
sac Sharpe Ratio: 0.21769919531765136
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_660_7
----------------------------------
| time/ | |
| fps | 149 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -1.107499 |
----------------------------------
Training Ensemble Models: 33%|███▎ | 1/3 [14:09<28:19, 849.55s/it]
======ppo Validation from: 2024-06-24 to 2024-07-23
ppo Sharpe Ratio: 0.2760073027690753
======Best Model Retraining from: 2010-01-04 to 2024-07-23
======Trading from: 2024-07-23 to 2024-08-20
Ensemble Strategy took: 14.158937911192575 minutes
A2C training completed!
Running PPO...
============Start Ensemble Strategy============
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-01-03
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_40_10
------------------------------------
| time/ | |
| fps | 154 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | 218 |
| reward | 2.499198 |
| std | 1.01 |
| value_loss | 99.3 |
------------------------------------
======a2c Validation from: 2022-01-03 to 2022-02-01
a2c Sharpe Ratio: 0.06690532324365144
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_40_9
======sac Validation from: 2022-01-03 to 2022-02-01
sac Sharpe Ratio: -0.02044940500387012
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_40_9
-----------------------------------
| time/ | |
| fps | 173 |
| iterations | 1 |
| time_elapsed | 11 |
| total_timesteps | 2048 |
| train/ | |
| reward | -1.3610878 |
-----------------------------------
======ppo Validation from: 2022-01-03 to 2022-02-01
ppo Sharpe Ratio: -0.1564569302415366
======Best Model Retraining from: 2010-01-04 to 2022-02-01
======Trading from: 2022-02-01 to 2022-03-02
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-02-01
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_60_8
-------------------------------------
| time/ | |
| fps | 152 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -476 |
| reward | 3.5878506 |
| std | 1 |
| value_loss | 154 |
-------------------------------------
======a2c Validation from: 2022-02-01 to 2022-03-02
a2c Sharpe Ratio: -0.5806404041174138
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_60_8
======sac Validation from: 2022-02-01 to 2022-03-02
sac Sharpe Ratio: -0.6539967060245322
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_60_8
-----------------------------------
| time/ | |
| fps | 174 |
| iterations | 1 |
| time_elapsed | 11 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.28662267 |
-----------------------------------
======ppo Validation from: 2022-02-01 to 2022-03-02
ppo Sharpe Ratio: -0.6939764939946061
======Best Model Retraining from: 2010-01-04 to 2022-03-02
======Trading from: 2022-03-02 to 2022-03-30
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-03-02
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_80_8
--------------------------------------
| time/ | |
| fps | 152 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | 15.6 |
| reward | 0.94884616 |
| std | 1 |
| value_loss | 6.48 |
--------------------------------------
======a2c Validation from: 2022-03-02 to 2022-03-30
a2c Sharpe Ratio: 0.7558120204404786
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_80_8
======sac Validation from: 2022-03-02 to 2022-03-30
sac Sharpe Ratio: 0.8073210320889309
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_80_8
------------------------------------
| time/ | |
| fps | 171 |
| iterations | 1 |
| time_elapsed | 11 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.026066026 |
------------------------------------
======ppo Validation from: 2022-03-02 to 2022-03-30
ppo Sharpe Ratio: 0.6819377885777826
======Best Model Retraining from: 2010-01-04 to 2022-03-30
======Trading from: 2022-03-30 to 2022-04-28
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-03-30
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_100_8
-------------------------------------
| time/ | |
| fps | 151 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.5 |
| explained_variance | 5.96e-08 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -55.8 |
| reward | 1.8377849 |
| std | 1.01 |
| value_loss | 23.6 |
-------------------------------------
======a2c Validation from: 2022-03-30 to 2022-04-28
a2c Sharpe Ratio: -0.5390547266209992
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_100_8
======sac Validation from: 2022-03-30 to 2022-04-28
sac Sharpe Ratio: -0.5287018162055941
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_100_8
----------------------------------
| time/ | |
| fps | 171 |
| iterations | 1 |
| time_elapsed | 11 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.8925058 |
----------------------------------
======ppo Validation from: 2022-03-30 to 2022-04-28
ppo Sharpe Ratio: -0.4106312663120139
======Best Model Retraining from: 2010-01-04 to 2022-04-28
======Trading from: 2022-04-28 to 2022-05-26
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-04-28
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_120_8
-------------------------------------
| time/ | |
| fps | 150 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.2 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | 12 |
| reward | 2.0747359 |
| std | 0.997 |
| value_loss | 12 |
-------------------------------------
======a2c Validation from: 2022-04-28 to 2022-05-26
a2c Sharpe Ratio: 0.0748593656946137
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_120_8
======sac Validation from: 2022-04-28 to 2022-05-26
sac Sharpe Ratio: 0.13502932860506137
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_120_8
-----------------------------------
| time/ | |
| fps | 172 |
| iterations | 1 |
| time_elapsed | 11 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.11080452 |
-----------------------------------
======ppo Validation from: 2022-04-28 to 2022-05-26
ppo Sharpe Ratio: 0.08199334813150708
======Best Model Retraining from: 2010-01-04 to 2022-05-26
======Trading from: 2022-05-26 to 2022-06-27
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-05-26
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_140_8
-------------------------------------
| time/ | |
| fps | 148 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.5 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | 38.2 |
| reward | 2.2149398 |
| std | 1.01 |
| value_loss | 22.3 |
-------------------------------------
======a2c Validation from: 2022-05-26 to 2022-06-27
a2c Sharpe Ratio: -0.1319117116252834
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_140_8
======sac Validation from: 2022-05-26 to 2022-06-27
sac Sharpe Ratio: -0.17771526151020414
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_140_8
-----------------------------------
| time/ | |
| fps | 168 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | -1.0957401 |
-----------------------------------
======ppo Validation from: 2022-05-26 to 2022-06-27
ppo Sharpe Ratio: -0.3229520764078126
======Best Model Retraining from: 2010-01-04 to 2022-06-27
======Trading from: 2022-06-27 to 2022-07-26
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-06-27
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_160_8
-------------------------------------
| time/ | |
| fps | 148 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.2 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -181 |
| reward | 1.0221664 |
| std | 0.996 |
| value_loss | 30.6 |
-------------------------------------
======a2c Validation from: 2022-06-27 to 2022-07-26
a2c Sharpe Ratio: 0.21632190871111107
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_160_8
======sac Validation from: 2022-06-27 to 2022-07-26
sac Sharpe Ratio: 0.4564304768094086
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_160_8
-----------------------------------
| time/ | |
| fps | 169 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.5747138 |
-----------------------------------
======ppo Validation from: 2022-06-27 to 2022-07-26
ppo Sharpe Ratio: 0.37823412198235473
======Best Model Retraining from: 2010-01-04 to 2022-07-26
======Trading from: 2022-07-26 to 2022-08-23
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-07-26
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_180_8
-------------------------------------
| time/ | |
| fps | 151 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | 14.9 |
| reward | 2.6874685 |
| std | 1.01 |
| value_loss | 54.5 |
-------------------------------------
======a2c Validation from: 2022-07-26 to 2022-08-23
a2c Sharpe Ratio: -0.27007099378574456
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_180_8
======sac Validation from: 2022-07-26 to 2022-08-23
sac Sharpe Ratio: -0.2960875500612118
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_180_8
------------------------------------
| time/ | |
| fps | 168 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.04775619 |
------------------------------------
======ppo Validation from: 2022-07-26 to 2022-08-23
ppo Sharpe Ratio: -0.35853202647625076
======Best Model Retraining from: 2010-01-04 to 2022-08-23
======Trading from: 2022-08-23 to 2022-09-21
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-08-23
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_200_8
-------------------------------------
| time/ | |
| fps | 149 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0.0927 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -320 |
| reward | 1.7469965 |
| std | 1 |
| value_loss | 93.8 |
-------------------------------------
======a2c Validation from: 2022-08-23 to 2022-09-21
a2c Sharpe Ratio: -0.4083804487132881
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_200_8
======sac Validation from: 2022-08-23 to 2022-09-21
sac Sharpe Ratio: -0.42001513724612344
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_200_8
----------------------------------
| time/ | |
| fps | 164 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | -1.485466 |
----------------------------------
======ppo Validation from: 2022-08-23 to 2022-09-21
ppo Sharpe Ratio: -0.4186683525678308
======Best Model Retraining from: 2010-01-04 to 2022-09-21
======Trading from: 2022-09-21 to 2022-10-19
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-09-21
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_220_8
-------------------------------------
| time/ | |
| fps | 152 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | 185 |
| reward | 2.7610364 |
| std | 1 |
| value_loss | 88.8 |
-------------------------------------
======a2c Validation from: 2022-09-21 to 2022-10-19
a2c Sharpe Ratio: 0.21314377549284239
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_220_8
======sac Validation from: 2022-09-21 to 2022-10-19
sac Sharpe Ratio: 0.12217074693410951
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_220_8
-----------------------------------
| time/ | |
| fps | 166 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | -1.3455435 |
-----------------------------------
======ppo Validation from: 2022-09-21 to 2022-10-19
ppo Sharpe Ratio: -0.035511529474377884
======Best Model Retraining from: 2010-01-04 to 2022-10-19
======Trading from: 2022-10-19 to 2022-11-16
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-10-19
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_240_8
------------------------------------
| time/ | |
| fps | 153 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.5 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -313 |
| reward | 1.326798 |
| std | 1.01 |
| value_loss | 80.6 |
------------------------------------
======a2c Validation from: 2022-10-19 to 2022-11-16
a2c Sharpe Ratio: 0.458996158225884
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_240_8
======sac Validation from: 2022-10-19 to 2022-11-16
sac Sharpe Ratio: 0.448328425379857
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_240_8
-----------------------------------
| time/ | |
| fps | 163 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.05243024 |
-----------------------------------
======ppo Validation from: 2022-10-19 to 2022-11-16
ppo Sharpe Ratio: 0.4240075164706596
======Best Model Retraining from: 2010-01-04 to 2022-11-16
======Trading from: 2022-11-16 to 2022-12-15
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-11-16
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_260_8
-------------------------------------
| time/ | |
| fps | 142 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -0.0225 |
| reward | 2.9157188 |
| std | 1 |
| value_loss | 33.7 |
-------------------------------------
======a2c Validation from: 2022-11-16 to 2022-12-15
a2c Sharpe Ratio: 0.24996519627740882
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_260_8
======sac Validation from: 2022-11-16 to 2022-12-15
sac Sharpe Ratio: 0.29593910351021124
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_260_8
------------------------------------
| time/ | |
| fps | 164 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.84768456 |
------------------------------------
======ppo Validation from: 2022-11-16 to 2022-12-15
ppo Sharpe Ratio: 0.1915305857781421
======Best Model Retraining from: 2010-01-04 to 2022-12-15
======Trading from: 2022-12-15 to 2023-01-17
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-12-15
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_280_8
------------------------------------
| time/ | |
| fps | 145 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 1.19e-07 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -276 |
| reward | 1.357563 |
| std | 0.999 |
| value_loss | 49.1 |
------------------------------------
======a2c Validation from: 2022-12-15 to 2023-01-17
a2c Sharpe Ratio: 0.5480446884621586
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_280_8
======sac Validation from: 2022-12-15 to 2023-01-17
sac Sharpe Ratio: 0.7104225549027511
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_280_8
-----------------------------------
| time/ | |
| fps | 164 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.21439715 |
-----------------------------------
======ppo Validation from: 2022-12-15 to 2023-01-17
ppo Sharpe Ratio: 0.4031250002426819
======Best Model Retraining from: 2010-01-04 to 2023-01-17
======Trading from: 2023-01-17 to 2023-02-14
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-01-17
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_300_8
-------------------------------------
| time/ | |
| fps | 145 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | -1.19e-07 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -188 |
| reward | 1.8085659 |
| std | 0.999 |
| value_loss | 30.7 |
-------------------------------------
======a2c Validation from: 2023-01-17 to 2023-02-14
a2c Sharpe Ratio: 0.3006302363881299
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_300_8
======sac Validation from: 2023-01-17 to 2023-02-14
sac Sharpe Ratio: 0.2974724197243113
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_300_8
-----------------------------------
| time/ | |
| fps | 164 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.44758737 |
-----------------------------------
======ppo Validation from: 2023-01-17 to 2023-02-14
ppo Sharpe Ratio: 0.25260094527581445
======Best Model Retraining from: 2010-01-04 to 2023-02-14
======Trading from: 2023-02-14 to 2023-03-15
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-02-14
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_320_8
-------------------------------------
| time/ | |
| fps | 147 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.2 |
| explained_variance | 5.96e-08 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | 75.7 |
| reward | 2.9870167 |
| std | 0.998 |
| value_loss | 27.9 |
-------------------------------------
======a2c Validation from: 2023-02-14 to 2023-03-15
a2c Sharpe Ratio: -0.5380204850689558
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_320_8
======sac Validation from: 2023-02-14 to 2023-03-15
sac Sharpe Ratio: -0.47594873253242714
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_320_8
-----------------------------------
| time/ | |
| fps | 163 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | -1.1139855 |
-----------------------------------
======ppo Validation from: 2023-02-14 to 2023-03-15
ppo Sharpe Ratio: -0.43505414504601414
======Best Model Retraining from: 2010-01-04 to 2023-03-15
======Trading from: 2023-03-15 to 2023-04-13
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-03-15
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_340_8
-------------------------------------
| time/ | |
| fps | 145 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.2 |
| explained_variance | -2.38e-07 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -220 |
| reward | 1.2184871 |
| std | 0.996 |
| value_loss | 38.7 |
-------------------------------------
======a2c Validation from: 2023-03-15 to 2023-04-13
a2c Sharpe Ratio: 0.38948244311412444
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_340_8
======sac Validation from: 2023-03-15 to 2023-04-13
sac Sharpe Ratio: 0.5372258157102852
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_340_8
-----------------------------------
| time/ | |
| fps | 161 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.3359371 |
-----------------------------------
======ppo Validation from: 2023-03-15 to 2023-04-13
ppo Sharpe Ratio: 0.2321146190406004
======Best Model Retraining from: 2010-01-04 to 2023-04-13
======Trading from: 2023-04-13 to 2023-05-11
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-04-13
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_360_8
--------------------------------------
| time/ | |
| fps | 141 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | -0.0573 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -451 |
| reward | 0.14034371 |
| std | 1 |
| value_loss | 137 |
--------------------------------------
======a2c Validation from: 2023-04-13 to 2023-05-11
a2c Sharpe Ratio: -0.31856810541103797
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_360_8
======sac Validation from: 2023-04-13 to 2023-05-11
sac Sharpe Ratio: -0.36393490359359065
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_360_8
-----------------------------------
| time/ | |
| fps | 159 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.5024036 |
-----------------------------------
======ppo Validation from: 2023-04-13 to 2023-05-11
ppo Sharpe Ratio: -0.32456928666090523
======Best Model Retraining from: 2010-01-04 to 2023-05-11
======Trading from: 2023-05-11 to 2023-06-09
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-05-11
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_380_8
--------------------------------------
| time/ | |
| fps | 146 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.5 |
| explained_variance | -2.38e-07 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -203 |
| reward | 0.87054217 |
| std | 1.01 |
| value_loss | 31.5 |
--------------------------------------
======a2c Validation from: 2023-05-11 to 2023-06-09
a2c Sharpe Ratio: 0.5505536422433295
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_380_8
======sac Validation from: 2023-05-11 to 2023-06-09
sac Sharpe Ratio: 0.5473927530925916
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_380_8
-----------------------------------
| time/ | |
| fps | 159 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.43062064 |
-----------------------------------
======ppo Validation from: 2023-05-11 to 2023-06-09
ppo Sharpe Ratio: 0.3640754139535865
======Best Model Retraining from: 2010-01-04 to 2023-06-09
======Trading from: 2023-06-09 to 2023-07-11
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-06-09
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_400_8
------------------------------------
| time/ | |
| fps | 147 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -170 |
| reward | 3.038293 |
| std | 0.998 |
| value_loss | 43 |
------------------------------------
======a2c Validation from: 2023-06-09 to 2023-07-11
a2c Sharpe Ratio: 0.38707153544441875
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_400_8
======sac Validation from: 2023-06-09 to 2023-07-11
sac Sharpe Ratio: 0.4677893002848949
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_400_8
------------------------------------
| time/ | |
| fps | 159 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.15942223 |
------------------------------------
======ppo Validation from: 2023-06-09 to 2023-07-11
ppo Sharpe Ratio: 0.43539238798189384
======Best Model Retraining from: 2010-01-04 to 2023-07-11
======Trading from: 2023-07-11 to 2023-08-08
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-07-11
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_420_8
--------------------------------------
| time/ | |
| fps | 141 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | -1.19e-07 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -254 |
| reward | 0.92542195 |
| std | 1 |
| value_loss | 68.7 |
--------------------------------------
======a2c Validation from: 2023-07-11 to 2023-08-08
a2c Sharpe Ratio: -0.1954886136871692
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_420_8
======sac Validation from: 2023-07-11 to 2023-08-08
sac Sharpe Ratio: 0.21291450563883288
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_420_8
-----------------------------------
| time/ | |
| fps | 151 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.34264624 |
-----------------------------------
======ppo Validation from: 2023-07-11 to 2023-08-08
ppo Sharpe Ratio: 0.08082078741547298
======Best Model Retraining from: 2010-01-04 to 2023-08-08
======Trading from: 2023-08-08 to 2023-09-06
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-08-08
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_440_8
-------------------------------------
| time/ | |
| fps | 141 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -261 |
| reward | 3.0962822 |
| std | 1 |
| value_loss | 71.9 |
-------------------------------------
======a2c Validation from: 2023-08-08 to 2023-09-06
a2c Sharpe Ratio: 0.1059615765035796
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_440_8
======sac Validation from: 2023-08-08 to 2023-09-06
sac Sharpe Ratio: 0.1655665963609186
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_440_8
-----------------------------------
| time/ | |
| fps | 157 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | -1.3147409 |
-----------------------------------
======ppo Validation from: 2023-08-08 to 2023-09-06
ppo Sharpe Ratio: -0.16348419311895815
======Best Model Retraining from: 2010-01-04 to 2023-09-06
======Trading from: 2023-09-06 to 2023-10-04
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-09-06
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_460_8
--------------------------------------
| time/ | |
| fps | 140 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.5 |
| explained_variance | 5.96e-08 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -398 |
| reward | 0.11880505 |
| std | 1.01 |
| value_loss | 132 |
--------------------------------------
======a2c Validation from: 2023-09-06 to 2023-10-04
a2c Sharpe Ratio: -1.0600788213324894
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_460_8
======sac Validation from: 2023-09-06 to 2023-10-04
sac Sharpe Ratio: -0.9378064577139144
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_460_8
----------------------------------
| time/ | |
| fps | 156 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -1.138806 |
----------------------------------
======ppo Validation from: 2023-09-06 to 2023-10-04
ppo Sharpe Ratio: -0.8696865889314375
======Best Model Retraining from: 2010-01-04 to 2023-10-04
======Trading from: 2023-10-04 to 2023-11-01
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-10-04
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_480_8
-------------------------------------
| time/ | |
| fps | 140 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.5 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | 149 |
| reward | 1.8812566 |
| std | 1.01 |
| value_loss | 40.7 |
-------------------------------------
======a2c Validation from: 2023-10-04 to 2023-11-01
a2c Sharpe Ratio: -0.5270538394027827
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_480_8
======sac Validation from: 2023-10-04 to 2023-11-01
sac Sharpe Ratio: -0.8162350758505548
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_480_8
-----------------------------------
| time/ | |
| fps | 157 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.1110432 |
-----------------------------------
======ppo Validation from: 2023-10-04 to 2023-11-01
ppo Sharpe Ratio: -0.5196765819237817
======Best Model Retraining from: 2010-01-04 to 2023-11-01
======Trading from: 2023-11-01 to 2023-11-30
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-11-01
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_500_8
--------------------------------------
| time/ | |
| fps | 142 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.5 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -390 |
| reward | 0.77264285 |
| std | 1.01 |
| value_loss | 138 |
--------------------------------------
======a2c Validation from: 2023-11-01 to 2023-11-30
a2c Sharpe Ratio: 1.1005108538894648
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_500_8
======sac Validation from: 2023-11-01 to 2023-11-30
sac Sharpe Ratio: 0.8553970570716987
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_500_8
-----------------------------------
| time/ | |
| fps | 154 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -1.2198234 |
-----------------------------------
======ppo Validation from: 2023-11-01 to 2023-11-30
ppo Sharpe Ratio: 0.8626956567404716
======Best Model Retraining from: 2010-01-04 to 2023-11-30
======Trading from: 2023-11-30 to 2023-12-29
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-11-30
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_520_8
-------------------------------------
| time/ | |
| fps | 136 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -58.9 |
| reward | 2.5138872 |
| std | 1 |
| value_loss | 28.1 |
-------------------------------------
======a2c Validation from: 2023-11-30 to 2023-12-29
a2c Sharpe Ratio: 0.6339900705252979
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_520_8
======sac Validation from: 2023-11-30 to 2023-12-29
sac Sharpe Ratio: 0.7397524567426513
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_520_8
-----------------------------------
| time/ | |
| fps | 154 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -1.3633145 |
-----------------------------------
======ppo Validation from: 2023-11-30 to 2023-12-29
ppo Sharpe Ratio: 1.1088719454062237
======Best Model Retraining from: 2010-01-04 to 2023-12-29
======Trading from: 2023-12-29 to 2024-01-30
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-12-29
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_540_8
-------------------------------------
| time/ | |
| fps | 137 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -112 |
| reward | 0.6126412 |
| std | 0.999 |
| value_loss | 11.8 |
-------------------------------------
======a2c Validation from: 2023-12-29 to 2024-01-30
a2c Sharpe Ratio: 0.3937211468972895
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_540_8
======sac Validation from: 2023-12-29 to 2024-01-30
sac Sharpe Ratio: 0.376272526955563
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_540_8
------------------------------------
| time/ | |
| fps | 152 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.38131493 |
------------------------------------
======ppo Validation from: 2023-12-29 to 2024-01-30
ppo Sharpe Ratio: 0.42070485385201334
======Best Model Retraining from: 2010-01-04 to 2024-01-30
======Trading from: 2024-01-30 to 2024-02-28
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2024-01-30
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_560_8
------------------------------------
| time/ | |
| fps | 133 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.5 |
| explained_variance | 1.79e-07 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -118 |
| reward | 2.316006 |
| std | 1.01 |
| value_loss | 23.1 |
------------------------------------
======a2c Validation from: 2024-01-30 to 2024-02-28
a2c Sharpe Ratio: 0.5694356379259715
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_560_8
======sac Validation from: 2024-01-30 to 2024-02-28
sac Sharpe Ratio: 0.2875168154858131
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_560_8
------------------------------------
| time/ | |
| fps | 155 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.16032481 |
------------------------------------
======ppo Validation from: 2024-01-30 to 2024-02-28
ppo Sharpe Ratio: 0.22585768091604064
======Best Model Retraining from: 2010-01-04 to 2024-02-28
======Trading from: 2024-02-28 to 2024-03-27
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2024-02-28
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_580_8
-------------------------------------
| time/ | |
| fps | 139 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -2.27 |
| reward | 1.2279879 |
| std | 1 |
| value_loss | 4.74 |
-------------------------------------
======a2c Validation from: 2024-02-28 to 2024-03-27
a2c Sharpe Ratio: -0.012979695688310164
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_580_8
======sac Validation from: 2024-02-28 to 2024-03-27
sac Sharpe Ratio: 0.39649648454778824
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_580_8
-------------------------------------
| time/ | |
| fps | 150 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.046416663 |
-------------------------------------
======ppo Validation from: 2024-02-28 to 2024-03-27
ppo Sharpe Ratio: 0.4834654165668012
======Best Model Retraining from: 2010-01-04 to 2024-03-27
======Trading from: 2024-03-27 to 2024-04-25
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2024-03-27
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_600_8
-------------------------------------
| time/ | |
| fps | 141 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 1.19e-07 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -330 |
| reward | 1.7837248 |
| std | 1 |
| value_loss | 95.5 |
-------------------------------------
======a2c Validation from: 2024-03-27 to 2024-04-25
a2c Sharpe Ratio: -0.11853485739919521
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_600_8
======sac Validation from: 2024-03-27 to 2024-04-25
sac Sharpe Ratio: -0.2266142659329783
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_600_8
------------------------------------
| time/ | |
| fps | 151 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.84688705 |
------------------------------------
======ppo Validation from: 2024-03-27 to 2024-04-25
ppo Sharpe Ratio: -0.3660663509655921
======Best Model Retraining from: 2010-01-04 to 2024-04-25
======Trading from: 2024-04-25 to 2024-05-23
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2024-04-25
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_620_8
-------------------------------------
| time/ | |
| fps | 137 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.2 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -251 |
| reward | 1.1641676 |
| std | 0.995 |
| value_loss | 48.8 |
-------------------------------------
======a2c Validation from: 2024-04-25 to 2024-05-23
a2c Sharpe Ratio: 1.1924217777890302
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_620_8
======sac Validation from: 2024-04-25 to 2024-05-23
sac Sharpe Ratio: 1.2949290768173918
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_620_8
----------------------------------
| time/ | |
| fps | 153 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | 1.4214128 |
----------------------------------
======ppo Validation from: 2024-04-25 to 2024-05-23
ppo Sharpe Ratio: 0.4952585112161672
======Best Model Retraining from: 2010-01-04 to 2024-05-23
======Trading from: 2024-05-23 to 2024-06-24
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2024-05-23
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_640_8
--------------------------------------
| time/ | |
| fps | 133 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.5 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -102 |
| reward | 0.68221694 |
| std | 1.01 |
| value_loss | 15.1 |
--------------------------------------
======a2c Validation from: 2024-05-23 to 2024-06-24
a2c Sharpe Ratio: -0.19865719572967722
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_640_8
======sac Validation from: 2024-05-23 to 2024-06-24
sac Sharpe Ratio: -0.015517910797790274
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_640_8
----------------------------------
| time/ | |
| fps | 146 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | 2.1389923 |
----------------------------------
======ppo Validation from: 2024-05-23 to 2024-06-24
ppo Sharpe Ratio: 0.08023325693542599
======Best Model Retraining from: 2010-01-04 to 2024-06-24
======Trading from: 2024-06-24 to 2024-07-23
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2024-06-24
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_660_8
---------------------------------------
| time/ | |
| fps | 132 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -188 |
| reward | 0.046553884 |
| std | 1 |
| value_loss | 23 |
---------------------------------------
======a2c Validation from: 2024-06-24 to 2024-07-23
a2c Sharpe Ratio: 0.6111814034574284
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_660_8
======sac Validation from: 2024-06-24 to 2024-07-23
sac Sharpe Ratio: 0.6699754953029071
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_660_8
-----------------------------------
| time/ | |
| fps | 149 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -1.9444602 |
-----------------------------------
======ppo Validation from: 2024-06-24 to 2024-07-23
ppo Sharpe Ratio: 0.6287312737734205
======Best Model Retraining from: 2010-01-04 to 2024-07-23
======Trading from: 2024-07-23 to 2024-08-20
Training Ensemble Models: 67%|██████▋ | 2/3 [28:14<14:06, 846.79s/it]
Ensemble Strategy took: 14.080795526504517 minutes
PPO training completed!
Running SAC...
============Start Ensemble Strategy============
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-01-03
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_40_11
--------------------------------------
| time/ | |
| fps | 151 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -329 |
| reward | -0.7496336 |
| std | 1 |
| value_loss | 91.1 |
--------------------------------------
======a2c Validation from: 2022-01-03 to 2022-02-01
a2c Sharpe Ratio: -0.277005744446282
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_40_10
======sac Validation from: 2022-01-03 to 2022-02-01
sac Sharpe Ratio: -0.04405103505468476
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_40_10
-----------------------------------
| time/ | |
| fps | 171 |
| iterations | 1 |
| time_elapsed | 11 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.8157077 |
-----------------------------------
======ppo Validation from: 2022-01-03 to 2022-02-01
ppo Sharpe Ratio: -0.36300204741126324
======Best Model Retraining from: 2010-01-04 to 2022-02-01
======Trading from: 2022-02-01 to 2022-03-02
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-02-01
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_60_9
--------------------------------------
| time/ | |
| fps | 155 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 1.79e-07 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -355 |
| reward | 0.13307081 |
| std | 1 |
| value_loss | 105 |
--------------------------------------
======a2c Validation from: 2022-02-01 to 2022-03-02
a2c Sharpe Ratio: -0.5611623945081106
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_60_9
======sac Validation from: 2022-02-01 to 2022-03-02
sac Sharpe Ratio: -0.6246327525059233
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_60_9
-----------------------------------
| time/ | |
| fps | 173 |
| iterations | 1 |
| time_elapsed | 11 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.24973702 |
-----------------------------------
======ppo Validation from: 2022-02-01 to 2022-03-02
ppo Sharpe Ratio: -0.6073298004682655
======Best Model Retraining from: 2010-01-04 to 2022-03-02
======Trading from: 2022-03-02 to 2022-03-30
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-03-02
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_80_9
-------------------------------------
| time/ | |
| fps | 150 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.5 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -84.2 |
| reward | 0.7372144 |
| std | 1.01 |
| value_loss | 8.61 |
-------------------------------------
======a2c Validation from: 2022-03-02 to 2022-03-30
a2c Sharpe Ratio: 0.6717765041614653
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_80_9
======sac Validation from: 2022-03-02 to 2022-03-30
sac Sharpe Ratio: 0.7707561641662122
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_80_9
-----------------------------------
| time/ | |
| fps | 171 |
| iterations | 1 |
| time_elapsed | 11 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.7151785 |
-----------------------------------
======ppo Validation from: 2022-03-02 to 2022-03-30
ppo Sharpe Ratio: 0.6476868285575601
======Best Model Retraining from: 2010-01-04 to 2022-03-30
======Trading from: 2022-03-30 to 2022-04-28
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-03-30
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_100_9
-------------------------------------
| time/ | |
| fps | 151 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -152 |
| reward | 1.0973939 |
| std | 1 |
| value_loss | 22.5 |
-------------------------------------
======a2c Validation from: 2022-03-30 to 2022-04-28
a2c Sharpe Ratio: -0.7012396586827544
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_100_9
======sac Validation from: 2022-03-30 to 2022-04-28
sac Sharpe Ratio: -0.5456923296988201
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_100_9
-------------------------------------
| time/ | |
| fps | 170 |
| iterations | 1 |
| time_elapsed | 11 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.106442794 |
-------------------------------------
======ppo Validation from: 2022-03-30 to 2022-04-28
ppo Sharpe Ratio: -0.6371146221640749
======Best Model Retraining from: 2010-01-04 to 2022-04-28
======Trading from: 2022-04-28 to 2022-05-26
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-04-28
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_120_9
-------------------------------------
| time/ | |
| fps | 151 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -4.77 |
| reward | 1.3012835 |
| std | 1 |
| value_loss | 7.93 |
-------------------------------------
======a2c Validation from: 2022-04-28 to 2022-05-26
a2c Sharpe Ratio: 0.10950351753123083
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_120_9
======sac Validation from: 2022-04-28 to 2022-05-26
sac Sharpe Ratio: 0.17590263634195025
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_120_9
----------------------------------
| time/ | |
| fps | 168 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | 1.2745026 |
----------------------------------
======ppo Validation from: 2022-04-28 to 2022-05-26
ppo Sharpe Ratio: 0.11921424693918574
======Best Model Retraining from: 2010-01-04 to 2022-05-26
======Trading from: 2022-05-26 to 2022-06-27
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-05-26
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_140_9
-------------------------------------
| time/ | |
| fps | 149 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -290 |
| reward | 1.7171904 |
| std | 1 |
| value_loss | 64.4 |
-------------------------------------
======a2c Validation from: 2022-05-26 to 2022-06-27
a2c Sharpe Ratio: -0.021113410559190415
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_140_9
======sac Validation from: 2022-05-26 to 2022-06-27
sac Sharpe Ratio: -0.07779444162788408
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_140_9
-----------------------------------
| time/ | |
| fps | 171 |
| iterations | 1 |
| time_elapsed | 11 |
| total_timesteps | 2048 |
| train/ | |
| reward | -1.4800094 |
-----------------------------------
======ppo Validation from: 2022-05-26 to 2022-06-27
ppo Sharpe Ratio: -0.19747880809142454
======Best Model Retraining from: 2010-01-04 to 2022-06-27
======Trading from: 2022-06-27 to 2022-07-26
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-06-27
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_160_9
-------------------------------------
| time/ | |
| fps | 151 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | -1.19e-07 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -294 |
| reward | 0.6305087 |
| std | 0.999 |
| value_loss | 64 |
-------------------------------------
======a2c Validation from: 2022-06-27 to 2022-07-26
a2c Sharpe Ratio: 0.1770778525131268
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_160_9
======sac Validation from: 2022-06-27 to 2022-07-26
sac Sharpe Ratio: 0.33772878334006995
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_160_9
-----------------------------------
| time/ | |
| fps | 169 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.6801457 |
-----------------------------------
======ppo Validation from: 2022-06-27 to 2022-07-26
ppo Sharpe Ratio: 0.078897336723414
======Best Model Retraining from: 2010-01-04 to 2022-07-26
======Trading from: 2022-07-26 to 2022-08-23
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-07-26
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_180_9
------------------------------------
| time/ | |
| fps | 148 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -113 |
| reward | 0.841531 |
| std | 0.998 |
| value_loss | 12.3 |
------------------------------------
======a2c Validation from: 2022-07-26 to 2022-08-23
a2c Sharpe Ratio: -0.11389820366636749
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_180_9
======sac Validation from: 2022-07-26 to 2022-08-23
sac Sharpe Ratio: -0.1328672894988044
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_180_9
----------------------------------
| time/ | |
| fps | 170 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | 1.7382145 |
----------------------------------
======ppo Validation from: 2022-07-26 to 2022-08-23
ppo Sharpe Ratio: -0.4070263009409465
======Best Model Retraining from: 2010-01-04 to 2022-08-23
======Trading from: 2022-08-23 to 2022-09-21
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-08-23
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_200_9
------------------------------------
| time/ | |
| fps | 150 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | -0.0167 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -629 |
| reward | 1.510617 |
| std | 1 |
| value_loss | 308 |
------------------------------------
======a2c Validation from: 2022-08-23 to 2022-09-21
a2c Sharpe Ratio: -0.5089713173267698
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_200_9
======sac Validation from: 2022-08-23 to 2022-09-21
sac Sharpe Ratio: -0.34645214826347487
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_200_9
------------------------------------
| time/ | |
| fps | 168 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.13645948 |
------------------------------------
======ppo Validation from: 2022-08-23 to 2022-09-21
ppo Sharpe Ratio: -0.4072454132371545
======Best Model Retraining from: 2010-01-04 to 2022-09-21
======Trading from: 2022-09-21 to 2022-10-19
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-09-21
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_220_9
-------------------------------------
| time/ | |
| fps | 149 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -122 |
| reward | 4.3199925 |
| std | 1 |
| value_loss | 54.6 |
-------------------------------------
======a2c Validation from: 2022-09-21 to 2022-10-19
a2c Sharpe Ratio: 0.25176531627969445
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_220_9
======sac Validation from: 2022-09-21 to 2022-10-19
sac Sharpe Ratio: 0.305725512438637
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_220_9
------------------------------------
| time/ | |
| fps | 155 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.18776749 |
------------------------------------
======ppo Validation from: 2022-09-21 to 2022-10-19
ppo Sharpe Ratio: 0.0586091486833646
======Best Model Retraining from: 2010-01-04 to 2022-10-19
======Trading from: 2022-10-19 to 2022-11-16
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-10-19
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_240_9
-------------------------------------
| time/ | |
| fps | 148 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.5 |
| explained_variance | -2.81e-05 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -216 |
| reward | 2.3132193 |
| std | 1.01 |
| value_loss | 36.5 |
-------------------------------------
======a2c Validation from: 2022-10-19 to 2022-11-16
a2c Sharpe Ratio: 0.4609090177059267
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_240_9
======sac Validation from: 2022-10-19 to 2022-11-16
sac Sharpe Ratio: 0.17118324184310985
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_240_9
----------------------------------
| time/ | |
| fps | 161 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.5179037 |
----------------------------------
======ppo Validation from: 2022-10-19 to 2022-11-16
ppo Sharpe Ratio: 0.6231536551376474
======Best Model Retraining from: 2010-01-04 to 2022-11-16
======Trading from: 2022-11-16 to 2022-12-15
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-11-16
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_260_9
-------------------------------------
| time/ | |
| fps | 143 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.2 |
| explained_variance | 1.19e-07 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -223 |
| reward | 3.1127691 |
| std | 0.995 |
| value_loss | 69.2 |
-------------------------------------
======a2c Validation from: 2022-11-16 to 2022-12-15
a2c Sharpe Ratio: 0.2565992575610972
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_260_9
======sac Validation from: 2022-11-16 to 2022-12-15
sac Sharpe Ratio: 0.0998137624501958
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_260_9
-----------------------------------
| time/ | |
| fps | 157 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.6490559 |
-----------------------------------
======ppo Validation from: 2022-11-16 to 2022-12-15
ppo Sharpe Ratio: 0.23624924966179553
======Best Model Retraining from: 2010-01-04 to 2022-12-15
======Trading from: 2022-12-15 to 2023-01-17
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2022-12-15
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_280_9
-------------------------------------
| time/ | |
| fps | 145 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.5 |
| explained_variance | -2.38e-07 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | 214 |
| reward | 4.083568 |
| std | 1.01 |
| value_loss | 105 |
-------------------------------------
======a2c Validation from: 2022-12-15 to 2023-01-17
a2c Sharpe Ratio: 0.8022037680823477
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_280_9
======sac Validation from: 2022-12-15 to 2023-01-17
sac Sharpe Ratio: 0.7580717262514154
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_280_9
-----------------------------------
| time/ | |
| fps | 160 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.14893843 |
-----------------------------------
======ppo Validation from: 2022-12-15 to 2023-01-17
ppo Sharpe Ratio: 0.592535893431476
======Best Model Retraining from: 2010-01-04 to 2023-01-17
======Trading from: 2023-01-17 to 2023-02-14
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-01-17
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_300_9
-------------------------------------
| time/ | |
| fps | 142 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -182 |
| reward | 1.4137645 |
| std | 1 |
| value_loss | 33.6 |
-------------------------------------
======a2c Validation from: 2023-01-17 to 2023-02-14
a2c Sharpe Ratio: 0.059161189833591366
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_300_9
======sac Validation from: 2023-01-17 to 2023-02-14
sac Sharpe Ratio: 0.23581382014680802
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_300_9
-----------------------------------
| time/ | |
| fps | 159 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.30445197 |
-----------------------------------
======ppo Validation from: 2023-01-17 to 2023-02-14
ppo Sharpe Ratio: 0.2664905238878775
======Best Model Retraining from: 2010-01-04 to 2023-02-14
======Trading from: 2023-02-14 to 2023-03-15
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-02-14
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_320_9
------------------------------------
| time/ | |
| fps | 136 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.6 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -152 |
| reward | 2.520211 |
| std | 1.01 |
| value_loss | 29.3 |
------------------------------------
======a2c Validation from: 2023-02-14 to 2023-03-15
a2c Sharpe Ratio: -0.2646310749029866
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_320_9
======sac Validation from: 2023-02-14 to 2023-03-15
sac Sharpe Ratio: -0.37729485660185924
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_320_9
-----------------------------------
| time/ | |
| fps | 161 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.6530828 |
-----------------------------------
======ppo Validation from: 2023-02-14 to 2023-03-15
ppo Sharpe Ratio: -0.49144147809832944
======Best Model Retraining from: 2010-01-04 to 2023-03-15
======Trading from: 2023-03-15 to 2023-04-13
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-03-15
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_340_9
-------------------------------------
| time/ | |
| fps | 144 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.2 |
| explained_variance | 0.0314 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -287 |
| reward | 5.7479925 |
| std | 0.997 |
| value_loss | 114 |
-------------------------------------
======a2c Validation from: 2023-03-15 to 2023-04-13
a2c Sharpe Ratio: 0.6055789845633207
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_340_9
======sac Validation from: 2023-03-15 to 2023-04-13
sac Sharpe Ratio: 0.2574776236703614
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_340_9
-----------------------------------
| time/ | |
| fps | 160 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | -1.7497588 |
-----------------------------------
======ppo Validation from: 2023-03-15 to 2023-04-13
ppo Sharpe Ratio: 0.14880947373827697
======Best Model Retraining from: 2010-01-04 to 2023-04-13
======Trading from: 2023-04-13 to 2023-05-11
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-04-13
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_360_9
-------------------------------------
| time/ | |
| fps | 143 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.2 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -56.4 |
| reward | 1.7145574 |
| std | 0.996 |
| value_loss | 9.41 |
-------------------------------------
======a2c Validation from: 2023-04-13 to 2023-05-11
a2c Sharpe Ratio: -0.1116394160180667
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_360_9
======sac Validation from: 2023-04-13 to 2023-05-11
sac Sharpe Ratio: -0.24399012289546446
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_360_9
-----------------------------------
| time/ | |
| fps | 161 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.55784476 |
-----------------------------------
======ppo Validation from: 2023-04-13 to 2023-05-11
ppo Sharpe Ratio: -0.2295441143093032
======Best Model Retraining from: 2010-01-04 to 2023-05-11
======Trading from: 2023-05-11 to 2023-06-09
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-05-11
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_380_9
------------------------------------
| time/ | |
| fps | 141 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -138 |
| reward | 1.566811 |
| std | 1 |
| value_loss | 17.9 |
------------------------------------
======a2c Validation from: 2023-05-11 to 2023-06-09
a2c Sharpe Ratio: 0.34306720618677666
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_380_9
======sac Validation from: 2023-05-11 to 2023-06-09
sac Sharpe Ratio: 0.2578363874018719
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_380_9
----------------------------------
| time/ | |
| fps | 160 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.3513223 |
----------------------------------
======ppo Validation from: 2023-05-11 to 2023-06-09
ppo Sharpe Ratio: 0.23155890257892242
======Best Model Retraining from: 2010-01-04 to 2023-06-09
======Trading from: 2023-06-09 to 2023-07-11
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-06-09
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_400_9
-------------------------------------
| time/ | |
| fps | 145 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.1 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -27.8 |
| reward | 1.0341798 |
| std | 0.992 |
| value_loss | 18.2 |
-------------------------------------
======a2c Validation from: 2023-06-09 to 2023-07-11
a2c Sharpe Ratio: 0.4390543165657006
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_400_9
======sac Validation from: 2023-06-09 to 2023-07-11
sac Sharpe Ratio: 0.28064924519821277
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_400_9
-----------------------------------
| time/ | |
| fps | 158 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.4240753 |
-----------------------------------
======ppo Validation from: 2023-06-09 to 2023-07-11
ppo Sharpe Ratio: 0.3708796821634243
======Best Model Retraining from: 2010-01-04 to 2023-07-11
======Trading from: 2023-07-11 to 2023-08-08
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-07-11
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_420_9
-------------------------------------
| time/ | |
| fps | 141 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | -1.19e-07 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | 77.2 |
| reward | 2.5170631 |
| std | 1 |
| value_loss | 24.5 |
-------------------------------------
======a2c Validation from: 2023-07-11 to 2023-08-08
a2c Sharpe Ratio: 0.11929494076766058
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_420_9
======sac Validation from: 2023-07-11 to 2023-08-08
sac Sharpe Ratio: -0.11547549667423432
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_420_9
----------------------------------
| time/ | |
| fps | 157 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | 1.1858159 |
----------------------------------
======ppo Validation from: 2023-07-11 to 2023-08-08
ppo Sharpe Ratio: 0.05202958408110215
======Best Model Retraining from: 2010-01-04 to 2023-08-08
======Trading from: 2023-08-08 to 2023-09-06
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-08-08
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_440_9
-------------------------------------
| time/ | |
| fps | 143 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.1 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -88.1 |
| reward | 2.0726461 |
| std | 0.994 |
| value_loss | 17.3 |
-------------------------------------
======a2c Validation from: 2023-08-08 to 2023-09-06
a2c Sharpe Ratio: -0.326462027375528
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_440_9
======sac Validation from: 2023-08-08 to 2023-09-06
sac Sharpe Ratio: -0.09009202048377843
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_440_9
------------------------------------
| time/ | |
| fps | 154 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.116301425 |
------------------------------------
======ppo Validation from: 2023-08-08 to 2023-09-06
ppo Sharpe Ratio: -0.19109430799463434
======Best Model Retraining from: 2010-01-04 to 2023-09-06
======Trading from: 2023-09-06 to 2023-10-04
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-09-06
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_460_9
-------------------------------------
| time/ | |
| fps | 141 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -249 |
| reward | 1.8425769 |
| std | 1 |
| value_loss | 46.5 |
-------------------------------------
======a2c Validation from: 2023-09-06 to 2023-10-04
a2c Sharpe Ratio: -0.7748721421325274
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_460_9
======sac Validation from: 2023-09-06 to 2023-10-04
sac Sharpe Ratio: -0.9237468048585713
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_460_9
-----------------------------------
| time/ | |
| fps | 157 |
| iterations | 1 |
| time_elapsed | 12 |
| total_timesteps | 2048 |
| train/ | |
| reward | -1.8436955 |
-----------------------------------
======ppo Validation from: 2023-09-06 to 2023-10-04
ppo Sharpe Ratio: -1.1031002270561963
======Best Model Retraining from: 2010-01-04 to 2023-10-04
======Trading from: 2023-10-04 to 2023-11-01
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-10-04
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_480_9
-------------------------------------
| time/ | |
| fps | 144 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0.152 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -96.4 |
| reward | 1.1691322 |
| std | 1 |
| value_loss | 42.4 |
-------------------------------------
======a2c Validation from: 2023-10-04 to 2023-11-01
a2c Sharpe Ratio: -0.7009656029491906
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_480_9
======sac Validation from: 2023-10-04 to 2023-11-01
sac Sharpe Ratio: -0.45188856257308413
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_480_9
------------------------------------
| time/ | |
| fps | 156 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.71137464 |
------------------------------------
======ppo Validation from: 2023-10-04 to 2023-11-01
ppo Sharpe Ratio: -0.442711173362212
======Best Model Retraining from: 2010-01-04 to 2023-11-01
======Trading from: 2023-11-01 to 2023-11-30
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-11-01
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_500_9
-------------------------------------
| time/ | |
| fps | 134 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -195 |
| reward | 0.8058053 |
| std | 1 |
| value_loss | 33.9 |
-------------------------------------
======a2c Validation from: 2023-11-01 to 2023-11-30
a2c Sharpe Ratio: 0.7709295145749766
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_500_9
======sac Validation from: 2023-11-01 to 2023-11-30
sac Sharpe Ratio: 0.6256466975855252
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_500_9
-----------------------------------
| time/ | |
| fps | 155 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.1084854 |
-----------------------------------
======ppo Validation from: 2023-11-01 to 2023-11-30
ppo Sharpe Ratio: 0.7046735374871806
======Best Model Retraining from: 2010-01-04 to 2023-11-30
======Trading from: 2023-11-30 to 2023-12-29
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-11-30
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_520_9
--------------------------------------
| time/ | |
| fps | 142 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0.115 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -499 |
| reward | 0.89194405 |
| std | 0.999 |
| value_loss | 226 |
--------------------------------------
======a2c Validation from: 2023-11-30 to 2023-12-29
a2c Sharpe Ratio: 0.7198373613480614
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_520_9
======sac Validation from: 2023-11-30 to 2023-12-29
sac Sharpe Ratio: 0.658043805827739
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_520_9
-----------------------------------
| time/ | |
| fps | 151 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.36050883 |
-----------------------------------
======ppo Validation from: 2023-11-30 to 2023-12-29
ppo Sharpe Ratio: 0.8155978054301785
======Best Model Retraining from: 2010-01-04 to 2023-12-29
======Trading from: 2023-12-29 to 2024-01-30
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2023-12-29
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_540_9
------------------------------------
| time/ | |
| fps | 136 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | -0.0109 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -326 |
| reward | 1.699114 |
| std | 1 |
| value_loss | 111 |
------------------------------------
======a2c Validation from: 2023-12-29 to 2024-01-30
a2c Sharpe Ratio: 0.24050451831903708
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_540_9
======sac Validation from: 2023-12-29 to 2024-01-30
sac Sharpe Ratio: 0.2666580168221358
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_540_9
----------------------------------
| time/ | |
| fps | 152 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -1.233893 |
----------------------------------
======ppo Validation from: 2023-12-29 to 2024-01-30
ppo Sharpe Ratio: 0.3365675443796178
======Best Model Retraining from: 2010-01-04 to 2024-01-30
======Trading from: 2024-01-30 to 2024-02-28
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2024-01-30
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_560_9
-------------------------------------
| time/ | |
| fps | 134 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.5 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -88.2 |
| reward | 2.5109413 |
| std | 1.01 |
| value_loss | 24.7 |
-------------------------------------
======a2c Validation from: 2024-01-30 to 2024-02-28
a2c Sharpe Ratio: 0.555724643716136
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_560_9
======sac Validation from: 2024-01-30 to 2024-02-28
sac Sharpe Ratio: 0.48714309324674226
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_560_9
------------------------------------
| time/ | |
| fps | 153 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.46166068 |
------------------------------------
======ppo Validation from: 2024-01-30 to 2024-02-28
ppo Sharpe Ratio: 0.40821735092729156
======Best Model Retraining from: 2010-01-04 to 2024-02-28
======Trading from: 2024-02-28 to 2024-03-27
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2024-02-28
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_580_9
-------------------------------------
| time/ | |
| fps | 137 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -112 |
| reward | 2.4579809 |
| std | 0.998 |
| value_loss | 26.1 |
-------------------------------------
======a2c Validation from: 2024-02-28 to 2024-03-27
a2c Sharpe Ratio: 0.5279580322259226
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_580_9
======sac Validation from: 2024-02-28 to 2024-03-27
sac Sharpe Ratio: 0.492814972425472
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_580_9
----------------------------------
| time/ | |
| fps | 147 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.6383551 |
----------------------------------
======ppo Validation from: 2024-02-28 to 2024-03-27
ppo Sharpe Ratio: 0.4339630599170644
======Best Model Retraining from: 2010-01-04 to 2024-03-27
======Trading from: 2024-03-27 to 2024-04-25
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2024-03-27
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_600_9
-------------------------------------
| time/ | |
| fps | 124 |
| iterations | 100 |
| time_elapsed | 4 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -96.8 |
| reward | 1.1630917 |
| std | 0.999 |
| value_loss | 14.5 |
-------------------------------------
======a2c Validation from: 2024-03-27 to 2024-04-25
a2c Sharpe Ratio: -0.3213152278324027
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_600_9
======sac Validation from: 2024-03-27 to 2024-04-25
sac Sharpe Ratio: -0.08780048147965884
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_600_9
-------------------------------------
| time/ | |
| fps | 150 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -0.087406956 |
-------------------------------------
======ppo Validation from: 2024-03-27 to 2024-04-25
ppo Sharpe Ratio: -0.3582461955713448
======Best Model Retraining from: 2010-01-04 to 2024-04-25
======Trading from: 2024-04-25 to 2024-05-23
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2024-04-25
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_620_9
------------------------------------
| time/ | |
| fps | 138 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.4 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -28.6 |
| reward | 3.054659 |
| std | 1 |
| value_loss | 46.6 |
------------------------------------
======a2c Validation from: 2024-04-25 to 2024-05-23
a2c Sharpe Ratio: 0.9901954341111886
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_620_9
======sac Validation from: 2024-04-25 to 2024-05-23
sac Sharpe Ratio: 0.832316278786897
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_620_9
-----------------------------------
| time/ | |
| fps | 146 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | -1.0277015 |
-----------------------------------
======ppo Validation from: 2024-04-25 to 2024-05-23
ppo Sharpe Ratio: 0.5816808784786365
======Best Model Retraining from: 2010-01-04 to 2024-05-23
======Trading from: 2024-05-23 to 2024-06-24
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2024-05-23
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_640_9
--------------------------------------
| time/ | |
| fps | 133 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.5 |
| explained_variance | 0 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | -274 |
| reward | 0.85620445 |
| std | 1.01 |
| value_loss | 50.6 |
--------------------------------------
======a2c Validation from: 2024-05-23 to 2024-06-24
a2c Sharpe Ratio: 0.13622863578058597
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_640_9
======sac Validation from: 2024-05-23 to 2024-06-24
sac Sharpe Ratio: 0.19449089123837904
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_640_9
----------------------------------
| time/ | |
| fps | 149 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | 0.4756614 |
----------------------------------
======ppo Validation from: 2024-05-23 to 2024-06-24
ppo Sharpe Ratio: 0.4183942172623797
======Best Model Retraining from: 2010-01-04 to 2024-06-24
======Trading from: 2024-06-24 to 2024-07-23
============================================
turbulence_threshold: 227.87028410067566
======Model training from: 2010-01-04 to 2024-06-24
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_660_9
--------------------------------------
| time/ | |
| fps | 137 |
| iterations | 100 |
| time_elapsed | 3 |
| total_timesteps | 500 |
| train/ | |
| entropy_loss | -38.3 |
| explained_variance | -2.38e-07 |
| learning_rate | 0.0007 |
| n_updates | 99 |
| policy_loss | 106 |
| reward | 0.85311204 |
| std | 0.998 |
| value_loss | 43.3 |
--------------------------------------
======a2c Validation from: 2024-06-24 to 2024-07-23
a2c Sharpe Ratio: 0.5300401769588926
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_660_9
======sac Validation from: 2024-06-24 to 2024-07-23
sac Sharpe Ratio: 0.3135970401477538
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_660_9
----------------------------------
| time/ | |
| fps | 151 |
| iterations | 1 |
| time_elapsed | 13 |
| total_timesteps | 2048 |
| train/ | |
| reward | 1.4515013 |
----------------------------------
======ppo Validation from: 2024-06-24 to 2024-07-23
ppo Sharpe Ratio: 0.6447057670454595
======Best Model Retraining from: 2010-01-04 to 2024-07-23
======Trading from: 2024-07-23 to 2024-08-20
Training Ensemble Models: 100%|██████████| 3/3 [42:25<00:00, 848.35s/it]
Ensemble Strategy took: 14.176815529664358 minutes
SAC training completed!
import pickle
with open('PPO.pkl', 'wb') as f:
pickle.dump(PPO, f)
with open('SAC.pkl', 'wb') as f:
pickle.dump(SAC, f)
with open('A2C.pkl', 'wb') as f:
pickle.dump(A2C, f)data_risk_indicator = processed[(processed.date<TRAIN_END_DATE) & (processed.date>=TRAIN_START_DATE)]
insample_risk_indicator = data_risk_indicator.drop_duplicates(subset=['date'])insample_risk_indicator| date | tic | adj_close | close | high | low | open | volume | macd | boll_ub | boll_lb | rsi_30 | cci_30 | dx_30 | close_30_sma | close_60_sma | turbulence | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2010-01-04 | A | 20.084951 | 22.389128 | 22.625179 | 22.267525 | 22.453505 | 3815561.0 | 0.000000 | 22.611468 | 21.923583 | 0.000000 | -66.666667 | 100.000000 | 22.389128 | 22.389128 | 0.000000 |
| 27 | 2010-01-05 | A | 19.866777 | 22.145924 | 22.331903 | 22.002861 | 22.324751 | 4186031.0 | -0.005457 | 22.611468 | 21.923583 | 0.000000 | -66.666667 | 100.000000 | 22.267526 | 22.267526 | 0.000000 |
| 54 | 2010-01-06 | A | 19.796186 | 22.067240 | 22.174536 | 22.002861 | 22.067240 | 3243779.0 | -0.009393 | 22.536374 | 21.865154 | 0.000000 | -69.260722 | 100.000000 | 22.200764 | 22.200764 | 0.000000 |
| 81 | 2010-01-07 | A | 19.770527 | 22.038628 | 22.045780 | 21.816881 | 22.017166 | 3095172.0 | -0.011986 | 22.478628 | 21.841831 | 0.000000 | -94.985258 | 100.000000 | 22.160230 | 22.160230 | 0.000000 |
| 108 | 2010-01-08 | A | 19.764101 | 22.031473 | 22.067240 | 21.745352 | 21.917025 | 3733918.0 | -0.013427 | 22.433302 | 21.835654 | 0.000000 | -79.514800 | 100.000000 | 22.134478 | 22.134478 | 0.000000 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 77382 | 2021-05-24 | A | 130.549561 | 133.339996 | 134.410004 | 132.529999 | 133.509995 | 1312300.0 | 0.151901 | 136.208348 | 128.070649 | 55.343350 | 26.026642 | 2.659779 | 132.797665 | 128.330166 | 7.903010 |
| 77409 | 2021-05-25 | A | 130.441879 | 133.229996 | 134.800003 | 133.009995 | 133.410004 | 1890600.0 | 0.268181 | 135.544688 | 128.409309 | 55.185016 | 34.575480 | 4.863827 | 132.806332 | 128.475999 | 8.542653 |
| 77436 | 2021-05-26 | A | 130.500626 | 133.289993 | 138.000000 | 133.250000 | 136.300003 | 2498400.0 | 0.361014 | 135.276344 | 128.526652 | 55.257242 | 77.083471 | 20.627219 | 132.850332 | 128.636832 | 10.050386 |
| 77463 | 2021-05-27 | A | 134.661667 | 137.539993 | 138.139999 | 133.160004 | 133.320007 | 3699600.0 | 0.768664 | 136.181647 | 127.960348 | 59.983213 | 122.915437 | 21.237547 | 132.992331 | 128.940832 | 21.773050 |
| 77490 | 2021-05-28 | A | 135.239349 | 138.130005 | 139.210007 | 138.000000 | 138.600006 | 1264400.0 | 1.126354 | 137.183822 | 127.407174 | 60.581166 | 185.321637 | 25.893136 | 133.110665 | 129.326499 | 11.838870 |
2871 rows × 17 columns
insample_risk_indicator.describe()| adj_close | close | high | low | open | volume | macd | boll_ub | boll_lb | rsi_30 | cci_30 | dx_30 | close_30_sma | close_60_sma | turbulence | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | 2871.000000 | 2871.000000 | 2871.000000 | 2871.000000 | 2871.000000 | 2.871000e+03 | 2871.000000 | 2871.000000 | 2871.000000 | 2871.000000 | 2871.000000 | 2871.000000 | 2871.000000 | 2871.000000 | 2871.000000 |
| mean | 48.404036 | 51.249515 | 51.749015 | 50.729619 | 51.239579 | 3.209902e+06 | 0.267835 | 53.501758 | 48.264174 | 53.230177 | 27.664638 | 23.474557 | 50.689741 | 50.118674 | 32.702407 |
| std | 25.964746 | 25.938871 | 26.192268 | 25.719282 | 25.952034 | 2.188438e+06 | 0.891018 | 26.731276 | 24.374863 | 8.098559 | 108.937549 | 16.315274 | 25.291504 | 24.631983 | 52.894444 |
| min | 17.306425 | 19.291845 | 19.706724 | 19.084406 | 19.334764 | 2.719000e+05 | -4.673526 | 21.209599 | 18.619792 | 0.000000 | -330.668642 | 0.015052 | 20.245112 | 20.464592 | 0.000000 |
| 25% | 28.420526 | 31.541488 | 31.866953 | 31.119456 | 31.527182 | 1.717750e+06 | -0.229932 | 32.997811 | 29.585806 | 47.838797 | -53.918302 | 10.308317 | 31.252027 | 30.838281 | 13.497704 |
| 50% | 38.141766 | 41.344776 | 41.623749 | 41.022888 | 41.310001 | 2.594100e+06 | 0.267917 | 42.808877 | 39.524896 | 53.549745 | 43.832910 | 20.661461 | 41.036958 | 40.670601 | 21.999442 |
| 75% | 64.572243 | 67.540001 | 68.165001 | 66.900002 | 67.500000 | 4.118744e+06 | 0.704089 | 71.005960 | 63.988851 | 59.345005 | 111.318698 | 34.552957 | 67.909833 | 67.403833 | 35.184550 |
| max | 135.239349 | 138.130005 | 139.210007 | 138.000000 | 138.600006 | 2.536867e+07 | 3.478340 | 138.558282 | 130.510372 | 73.489382 | 424.656082 | 100.000000 | 133.110665 | 129.326499 | 1164.879747 |
insample_risk_indicator.turbulence.quantile(0.996)409.8218417382907
insample_risk_indicator.turbulence.describe()count 2871.000000
mean 32.702407
std 52.894444
min 0.000000
25% 13.497704
50% 21.999442
75% 35.184550
max 1164.879747
Name: turbulence, dtype: float64
ensemble_models_summary{'A2C': Iter Val Start Val End Model Used A2C Sharpe PPO Sharpe DDPG Sharpe \
0 40 2022-01-03 2022-02-01 SAC -0.423922 -0.273439 None
1 60 2022-02-01 2022-03-02 A2C -0.453345 -0.657718 None
2 80 2022-03-02 2022-03-30 SAC 0.864892 0.684605 None
3 100 2022-03-30 2022-04-28 A2C -0.34253 -0.490712 None
4 120 2022-04-28 2022-05-26 A2C 0.519452 0.153582 None
5 140 2022-05-26 2022-06-27 SAC -0.260147 -0.222712 None
6 160 2022-06-27 2022-07-26 SAC 0.332858 0.258652 None
7 180 2022-07-26 2022-08-23 SAC -0.262171 -0.291139 None
8 200 2022-08-23 2022-09-21 PPO -0.372933 -0.360953 None
9 220 2022-09-21 2022-10-19 SAC 0.209318 0.261868 None
10 240 2022-10-19 2022-11-16 A2C 0.755574 0.506843 None
11 260 2022-11-16 2022-12-15 SAC 0.016867 -0.101778 None
12 280 2022-12-15 2023-01-17 SAC 0.491225 0.498177 None
13 300 2023-01-17 2023-02-14 A2C 0.363999 0.266008 None
14 320 2023-02-14 2023-03-15 PPO -0.379639 -0.35501 None
15 340 2023-03-15 2023-04-13 SAC 0.458739 0.438165 None
16 360 2023-04-13 2023-05-11 SAC -0.159019 -0.060665 None
17 380 2023-05-11 2023-06-09 PPO 0.570381 0.600905 None
18 400 2023-06-09 2023-07-11 A2C 0.513168 0.323202 None
19 420 2023-07-11 2023-08-08 SAC -0.161957 -0.118398 None
20 440 2023-08-08 2023-09-06 PPO -0.110935 0.01418 None
21 460 2023-09-06 2023-10-04 A2C -0.961762 -1.331902 None
22 480 2023-10-04 2023-11-01 SAC -0.545037 -0.53227 None
23 500 2023-11-01 2023-11-30 PPO -0.037628 0.721639 None
24 520 2023-11-30 2023-12-29 PPO 0.765429 0.850939 None
25 540 2023-12-29 2024-01-30 SAC 0.040378 -0.189469 None
26 560 2024-01-30 2024-02-28 A2C 0.64016 0.588847 None
27 580 2024-02-28 2024-03-27 A2C 0.414401 0.206586 None
28 600 2024-03-27 2024-04-25 PPO -0.28788 -0.241008 None
29 620 2024-04-25 2024-05-23 A2C 0.724756 0.497639 None
30 640 2024-05-23 2024-06-24 SAC 0.072148 0.152596 None
31 660 2024-06-24 2024-07-23 A2C 0.422525 0.276007 None
SAC Sharpe TD3 Sharpe
0 -0.160689 None
1 -0.454324 None
2 0.927744 None
3 -0.563518 None
4 0.186095 None
5 -0.091835 None
6 0.461719 None
7 -0.255906 None
8 -0.492265 None
9 0.314763 None
10 0.642621 None
11 0.157658 None
12 0.627456 None
13 -0.098879 None
14 -0.619906 None
15 0.580698 None
16 0.019134 None
17 0.136974 None
18 0.205081 None
19 0.005009 None
20 -0.147471 None
21 -0.992069 None
22 -0.516956 None
23 0.706375 None
24 0.697468 None
25 0.409176 None
26 0.348987 None
27 0.225673 None
28 -0.281183 None
29 0.240712 None
30 0.557386 None
31 0.217699 None ,
'PPO': Iter Val Start Val End Model Used A2C Sharpe PPO Sharpe DDPG Sharpe \
0 40 2022-01-03 2022-02-01 A2C 0.066905 -0.156457 None
1 60 2022-02-01 2022-03-02 A2C -0.58064 -0.693976 None
2 80 2022-03-02 2022-03-30 SAC 0.755812 0.681938 None
3 100 2022-03-30 2022-04-28 PPO -0.539055 -0.410631 None
4 120 2022-04-28 2022-05-26 SAC 0.074859 0.081993 None
5 140 2022-05-26 2022-06-27 A2C -0.131912 -0.322952 None
6 160 2022-06-27 2022-07-26 SAC 0.216322 0.378234 None
7 180 2022-07-26 2022-08-23 A2C -0.270071 -0.358532 None
8 200 2022-08-23 2022-09-21 A2C -0.40838 -0.418668 None
9 220 2022-09-21 2022-10-19 A2C 0.213144 -0.035512 None
10 240 2022-10-19 2022-11-16 A2C 0.458996 0.424008 None
11 260 2022-11-16 2022-12-15 SAC 0.249965 0.191531 None
12 280 2022-12-15 2023-01-17 SAC 0.548045 0.403125 None
13 300 2023-01-17 2023-02-14 A2C 0.30063 0.252601 None
14 320 2023-02-14 2023-03-15 PPO -0.53802 -0.435054 None
15 340 2023-03-15 2023-04-13 SAC 0.389482 0.232115 None
16 360 2023-04-13 2023-05-11 A2C -0.318568 -0.324569 None
17 380 2023-05-11 2023-06-09 A2C 0.550554 0.364075 None
18 400 2023-06-09 2023-07-11 SAC 0.387072 0.435392 None
19 420 2023-07-11 2023-08-08 SAC -0.195489 0.080821 None
20 440 2023-08-08 2023-09-06 SAC 0.105962 -0.163484 None
21 460 2023-09-06 2023-10-04 PPO -1.060079 -0.869687 None
22 480 2023-10-04 2023-11-01 PPO -0.527054 -0.519677 None
23 500 2023-11-01 2023-11-30 A2C 1.100511 0.862696 None
24 520 2023-11-30 2023-12-29 PPO 0.63399 1.108872 None
25 540 2023-12-29 2024-01-30 PPO 0.393721 0.420705 None
26 560 2024-01-30 2024-02-28 A2C 0.569436 0.225858 None
27 580 2024-02-28 2024-03-27 PPO -0.01298 0.483465 None
28 600 2024-03-27 2024-04-25 A2C -0.118535 -0.366066 None
29 620 2024-04-25 2024-05-23 SAC 1.192422 0.495259 None
30 640 2024-05-23 2024-06-24 PPO -0.198657 0.080233 None
31 660 2024-06-24 2024-07-23 SAC 0.611181 0.628731 None
SAC Sharpe TD3 Sharpe
0 -0.020449 None
1 -0.653997 None
2 0.807321 None
3 -0.528702 None
4 0.135029 None
5 -0.177715 None
6 0.45643 None
7 -0.296088 None
8 -0.420015 None
9 0.122171 None
10 0.448328 None
11 0.295939 None
12 0.710423 None
13 0.297472 None
14 -0.475949 None
15 0.537226 None
16 -0.363935 None
17 0.547393 None
18 0.467789 None
19 0.212915 None
20 0.165567 None
21 -0.937806 None
22 -0.816235 None
23 0.855397 None
24 0.739752 None
25 0.376273 None
26 0.287517 None
27 0.396496 None
28 -0.226614 None
29 1.294929 None
30 -0.015518 None
31 0.669975 None ,
'SAC': Iter Val Start Val End Model Used A2C Sharpe PPO Sharpe DDPG Sharpe \
0 40 2022-01-03 2022-02-01 SAC -0.277006 -0.363002 None
1 60 2022-02-01 2022-03-02 A2C -0.561162 -0.60733 None
2 80 2022-03-02 2022-03-30 SAC 0.671777 0.647687 None
3 100 2022-03-30 2022-04-28 SAC -0.70124 -0.637115 None
4 120 2022-04-28 2022-05-26 SAC 0.109504 0.119214 None
5 140 2022-05-26 2022-06-27 A2C -0.021113 -0.197479 None
6 160 2022-06-27 2022-07-26 SAC 0.177078 0.078897 None
7 180 2022-07-26 2022-08-23 A2C -0.113898 -0.407026 None
8 200 2022-08-23 2022-09-21 SAC -0.508971 -0.407245 None
9 220 2022-09-21 2022-10-19 SAC 0.251765 0.058609 None
10 240 2022-10-19 2022-11-16 PPO 0.460909 0.623154 None
11 260 2022-11-16 2022-12-15 A2C 0.256599 0.236249 None
12 280 2022-12-15 2023-01-17 A2C 0.802204 0.592536 None
13 300 2023-01-17 2023-02-14 PPO 0.059161 0.266491 None
14 320 2023-02-14 2023-03-15 A2C -0.264631 -0.491441 None
15 340 2023-03-15 2023-04-13 A2C 0.605579 0.148809 None
16 360 2023-04-13 2023-05-11 A2C -0.111639 -0.229544 None
17 380 2023-05-11 2023-06-09 A2C 0.343067 0.231559 None
18 400 2023-06-09 2023-07-11 A2C 0.439054 0.37088 None
19 420 2023-07-11 2023-08-08 A2C 0.119295 0.05203 None
20 440 2023-08-08 2023-09-06 SAC -0.326462 -0.191094 None
21 460 2023-09-06 2023-10-04 A2C -0.774872 -1.1031 None
22 480 2023-10-04 2023-11-01 PPO -0.700966 -0.442711 None
23 500 2023-11-01 2023-11-30 A2C 0.77093 0.704674 None
24 520 2023-11-30 2023-12-29 PPO 0.719837 0.815598 None
25 540 2023-12-29 2024-01-30 PPO 0.240505 0.336568 None
26 560 2024-01-30 2024-02-28 A2C 0.555725 0.408217 None
27 580 2024-02-28 2024-03-27 A2C 0.527958 0.433963 None
28 600 2024-03-27 2024-04-25 SAC -0.321315 -0.358246 None
29 620 2024-04-25 2024-05-23 A2C 0.990195 0.581681 None
30 640 2024-05-23 2024-06-24 PPO 0.136229 0.418394 None
31 660 2024-06-24 2024-07-23 PPO 0.53004 0.644706 None
SAC Sharpe TD3 Sharpe
0 -0.044051 None
1 -0.624633 None
2 0.770756 None
3 -0.545692 None
4 0.175903 None
5 -0.077794 None
6 0.337729 None
7 -0.132867 None
8 -0.346452 None
9 0.305726 None
10 0.171183 None
11 0.099814 None
12 0.758072 None
13 0.235814 None
14 -0.377295 None
15 0.257478 None
16 -0.24399 None
17 0.257836 None
18 0.280649 None
19 -0.115475 None
20 -0.090092 None
21 -0.923747 None
22 -0.451889 None
23 0.625647 None
24 0.658044 None
25 0.266658 None
26 0.487143 None
27 0.492815 None
28 -0.0878 None
29 0.832316 None
30 0.194491 None
31 0.313597 None }
unique_trade_date = processed[(processed.date > TEST_START_DATE)&(processed.date <= TEST_END_DATE)].date.unique()df_trade_date = pd.DataFrame({'datadate': unique_trade_date})
df_account_value = pd.DataFrame()
for i in range(rebalance_window + validation_window, len(unique_trade_date) + 1, rebalance_window):
temp = pd.read_csv(f'results/account_value_trade_ensemble_{i}.csv')
df_account_value = pd.concat([df_account_value, temp], ignore_index=True)
sharpe = (252**0.5) * df_account_value['account_value'].pct_change(1).mean() / \
df_account_value['account_value'].pct_change(1).std()
print('Sharpe Ratio:', sharpe)
df_account_value = df_account_value.join(df_trade_date[validation_window:].reset_index(drop=True))Sharpe Ratio: 0.7494608207778994
df_account_value.head()| account_value | date | daily_return | datadate | |
|---|---|---|---|---|
| 0 | 1.000000e+07 | 2022-02-01 | NaN | 2022-02-01 |
| 1 | 1.000098e+07 | 2022-02-02 | 0.000098 | 2022-02-02 |
| 2 | 9.995799e+06 | 2022-02-03 | -0.000518 | 2022-02-03 |
| 3 | 9.990878e+06 | 2022-02-04 | -0.000492 | 2022-02-04 |
| 4 | 9.991408e+06 | 2022-02-07 | 0.000053 | 2022-02-07 |
df_account_value.account_value.plot()<Axes: >

print("==============Get Backtest Results===========")
now = datetime.datetime.now().strftime('%Y%m%d-%Hh%M')
perf_stats_all = backtest_stats(account_value=df_account_value)
perf_stats_all = pd.DataFrame(perf_stats_all)==============Get Backtest Results===========
Annual return 0.089159
Cumulative returns 0.242226
Annual volatility 0.124444
Sharpe ratio 0.749461
Calmar ratio 0.668633
Stability 0.543350
Max drawdown -0.133346
Omega ratio 1.142323
Sortino ratio 1.126201
Skew NaN
Kurtosis NaN
Tail ratio 1.023071
Daily value at risk -0.015308
dtype: float64
print("==============Get Baseline Stats===========")
df_dji_ = get_baseline(
ticker="^DJI",
start = df_account_value.loc[0,'date'],
end = df_account_value.loc[len(df_account_value)-1,'date'])
stats = backtest_stats(df_dji_, value_col_name = 'close')==============Get Baseline Stats===========
[*********************100%***********************] 1 of 1 completed
Shape of DataFrame: (639, 8)
Annual return 0.057743
Cumulative returns 0.152978
Annual volatility 0.141982
Sharpe ratio 0.466963
Calmar ratio 0.299262
Stability 0.620934
Max drawdown -0.192950
Omega ratio 1.082838
Sortino ratio 0.659416
Skew NaN
Kurtosis NaN
Tail ratio 0.978584
Daily value at risk -0.017625
dtype: float64
df_dji = pd.DataFrame()
df_dji['date'] = df_account_value['date']
df_dji['dji'] = df_dji_['close'] / df_dji_['close'][0] * env_kwargs["initial_amount"]
print("df_dji: ", df_dji)
df_dji.to_csv("df_dji.csv")
df_dji = df_dji.set_index(df_dji.columns[0])
print("df_dji: ", df_dji)
df_dji.to_csv("df_dji+.csv")
df_account_value.to_csv('df_account_value.csv')df_dji: date dji
0 2022-02-01 1.000000e+07
1 2022-02-02 1.006450e+07
2 2022-02-03 1.010486e+07
3 2022-02-04 9.984146e+06
4 2022-02-07 9.987742e+06
.. ... ...
635 2024-08-13 1.122151e+07
636 2024-08-14 1.132260e+07
637 2024-08-15 1.146346e+07
638 2024-08-16 1.152978e+07
639 2024-08-19 NaN
[640 rows x 2 columns]
df_dji: dji
date
2022-02-01 1.000000e+07
2022-02-02 1.006450e+07
2022-02-03 1.010486e+07
2022-02-04 9.984146e+06
2022-02-07 9.987742e+06
... ...
2024-08-13 1.122151e+07
2024-08-14 1.132260e+07
2024-08-15 1.146346e+07
2024-08-16 1.152978e+07
2024-08-19 NaN
[640 rows x 1 columns]
df.to_csv("df.csv")
df_result_ensemble = pd.DataFrame({
'date': df_account_value['date'],
'ensemble': df_account_value['account_value']
})
df_result_ensemble = df_result_ensemble.set_index('date')
print("df_result_ensemble.columns:", df_result_ensemble.columns)
print("df_trade_date:", df_trade_date)
df_result_ensemble.to_csv("df_result_ensemble.csv")
print("df_result_ensemble:", df_result_ensemble)df_result_ensemble.columns: Index(['ensemble'], dtype='object')
df_trade_date: datadate
0 2022-01-03
1 2022-01-04
2 2022-01-05
3 2022-01-06
4 2022-01-07
.. ...
656 2024-08-14
657 2024-08-15
658 2024-08-16
659 2024-08-19
660 2024-08-20
[661 rows x 1 columns]
df_result_ensemble: ensemble
date
2022-02-01 1.000000e+07
2022-02-02 1.000098e+07
2022-02-03 9.995799e+06
2022-02-04 9.990878e+06
2022-02-07 9.991408e+06
... ...
2024-08-13 1.207706e+07
2024-08-14 1.210727e+07
2024-08-15 1.225331e+07
2024-08-16 1.229087e+07
2024-08-19 1.242226e+07
[640 rows x 1 columns]
result=pd.read_csv("df_result_ensemble.csv")
plt.rcParams["figure.figsize"] = (15, 5)
result.plot(title="Ensemble Strategy")
plt.show()
df_result_ensemble = pd.read_csv("df_result_ensemble.csv", parse_dates=['date']).set_index('date')
df_dji = pd.read_csv("df_dji.csv", parse_dates=['date']).set_index('date')
plt.rcParams["figure.figsize"] = (15, 5)
plt.plot(df_result_ensemble.index, df_result_ensemble['ensemble'], label='Ensemble Strategy')
plt.plot(df_dji.index, df_dji['dji'], label='DJIA', color='orange')
plt.xlabel("Date")
plt.ylabel("Account Value")
plt.title("Ensemble Strategy vs DJIA")
plt.legend()
plt.show()